【发布时间】: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 字节字符串终止符一样。您需要按字节检查向服务器发送和从服务器发送的内容。
标签: node.js actionscript-3 flash websocket xmlsocket