【发布时间】:2017-06-17 10:14:10
【问题描述】:
我在这里找到了很多示例,但是使用非常旧的节点和 adobe air 版本的非常旧的帖子。我制作了运行正常的简单节点 js 服务器 - 使用 Web 浏览器进行了测试。 Node JS 是 6.11 版本。
var http = require('http');
var sockets = [];
var server = http.createServer(function(req, res) {});
server.listen(8080);
var io = require('socket.io').listen(server);
io.set('transports', ['websocket','flashsocket']);
io.sockets.on('connection', function (socket) {
sockets.push(socket);
socket.on('disconnect', function() {
var i = sockets.indexOf(socket);
sockets.splice(i, 1);
});
socket.on("data",function(d){
console.log('data from flash: ',d);
});
socket.write(JSON.stringify({message:"blah blah"}));
});
我的任务是将它连接到 AS3 Air 应用程序。脚本看起来像这样:
public class CustomSocket extends Socket {
public function CustomSocket(host:String = null, port:uint = 0) {
super();
configureListeners();
if (host && port) {
super.connect(host, port);
}
}
private function configureListeners():void {
addEventListener(Event.CLOSE, closeHandler);
addEventListener(Event.CONNECT, connectHandler);
addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
....
}
它连接到套接字没有错误,但发送或接收数据都没有工作。只有连接事件被触发,仅此而已。 ProgressEvent.SOCKET_DATA 永远不会被触发。此外,在连接时,我向节点发送了一些数据,但从未收到。
有什么想法吗?
【问题讨论】:
标签: node.js sockets actionscript-3 flash air