Actionscript xmlsocket 不读取由 nodejs 网络模块服务器写入的数据。但服务器正确读取数据。任何解决方案?
Posted
技术标签:
【中文标题】Actionscript xmlsocket 不读取由 nodejs 网络模块服务器写入的数据。但服务器正确读取数据。任何解决方案?【英文标题】:Actionscript xmlsocket doesn't read data which is write by the nodejs net module server. but server read the data correctly. any solution? 【发布时间】:2018-05-27 13:52:34 【问题描述】:Node js 网络模块服务器代码:
var net = require('net');
var server = net.createServer(function (connection)
console.log('client connected');
connection.on('data', function (data)
console.log('data from flash = ' + data);
var jsonData = ;
jsonData.message = "joined";
var d = JSON.stringify(jsonData);
connection.write(d);
);
connection.on('end', function ()
console.log('client disconnected');
);
// connection.pipe(connection);
);
server.listen(3055, function ()
console.log('server is listening');
);
动作脚本代码
this.login_socket.connect(this.server_ip,3055);
this.login_socket.addEventListener(Event.CONNECT,this.login_socket_onConnection);
this.login_socket.addEventListener(DataEvent.DATA,this.login_onData);
this.login_socket.addEventListener(IOErrorEvent.IO_ERROR,this.login_socket_onIOErrorEvent);
this.login_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR,this.login_socket_SecurityErrorEvent);
this.login_socket.addEventListener(Event.CLOSE,this.login_socket_closeErrorEvent);
谁能告诉我如何将xml套接字与node js net模块一起使用?我已经尝试了一切,但这根本不起作用。我想为 Flash 游戏创建一个到服务器的套接字连接。我使用 laravel 作为后端。如果有人知道如何用 php 创建它,请告诉我。谢谢。
【问题讨论】:
客户端有错误吗?我认为应该有一个 SecurityErrorEvent 因为如果没有正确的跨域策略,AS3 套接字将无法工作,而我在您的 node.js 代码中看不到一个。 当我按原样发回客户端数据时,客户端接受数据。但其他任何不接受。你能告诉我如何跨域策略吗? 我不确定我是否理解。您说如果您从客户端向服务器发送“AAA”然后将其回显,就可以了。但是,如果您改为发送“BBB”,那就不行了? 是的。但“BBB”不是客户端到服务器。仅从服务器到客户端。 如果发送工作完全那么它工作。看起来你错过了一些东西。就像数据包末尾的 0 字节字符串终止符一样。您需要按字节检查向服务器发送和从服务器发送的内容。 【参考方案1】:var net = require('net');
var server = net.createServer(function (connection)
console.log('client connected');
connection.setEncoding("utf8");
// on receive data from client
connection.on('data', function (data)
console.log('data from flash = ' + data);
var d = JSON.stringify(
message: "joined"
) + "\0";
connection.write(d);
);
// on connection end
connection.on('end', function ()
console.log('client disconnected');
);
// on error
connection.on("error", function (exception)
console.log('an error occurred: ' + exception);
);
);
server.listen(3055, function ()
console.log('server is listening');
);
我将 nodejs 服务器代码更改为上面的代码,现在可以正常工作了。
【讨论】:
以上是关于Actionscript xmlsocket 不读取由 nodejs 网络模块服务器写入的数据。但服务器正确读取数据。任何解决方案?的主要内容,如果未能解决你的问题,请参考以下文章
Actionscript xmlsocket 不读取由 nodejs 网络模块服务器写入的数据。但服务器正确读取数据。任何解决方案?