【问题标题】:How to properly setup socket connection from AS3 air to nodejs如何正确设置从 AS3 air 到 nodejs 的套接字连接
【发布时间】: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


    【解决方案1】:

    想通了。而不是像网页那样使用socket.io,我不得不在nodejs端使用TCP套接字连接。当我创建这样的脚本时:

    var net = require('net');
    var net_server = net.createServer(function(socket) {
        socket.write('blah blah \n');
        socket.on('data', function(chunk) {
    
        });
        socket.on('error', function(err) {});
    });
    net_server.listen(8000);
    

    有双向通信正在工作。

    【讨论】:

      猜你喜欢
      • 2014-11-11
      • 1970-01-01
      • 2021-05-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多