Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何正确设置从AS3 air到nodejs的套接字连接_Node.js_Sockets_Actionscript 3_Flash_Air - Fatal编程技术网

Node.js 如何正确设置从AS3 air到nodejs的套接字连接

Node.js 如何正确设置从AS3 air到nodejs的套接字连接,node.js,sockets,actionscript-3,flash,air,Node.js,Sockets,Actionscript 3,Flash,Air,我在这里找到了很多示例,但是非常旧的帖子使用了非常旧的node和AdobeAIR版本。我制作了简单的节点js服务器,该服务器通过web浏览器进行了正确的测试。NodeJS是版本6.11 var http = require('http'); var sockets = []; var server = http.createServer(function(req, res) {}); server.listen(8080); var io = require('socket.io').liste

我在这里找到了很多示例,但是非常旧的帖子使用了非常旧的node和AdobeAIR版本。我制作了简单的节点js服务器,该服务器通过web浏览器进行了正确的测试。NodeJS是版本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);
    }
    ....
}
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);
它连接到套接字没有错误,但发送或接收数据都不工作。仅触发连接事件,仅此而已。ProgressEvent.SOCKET_数据从未激发。此外,在连接时,我将一些数据发送到节点,但从未收到


有什么想法吗?

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

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);
    }
    ....
}
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);

双向通信正在发挥作用。

解决了这个问题。我没有像网页那样使用
socket.io
,而是在nodejs端使用TCP套接字连接。当我创建这样的脚本时:

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);
    }
    ....
}
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);
双向通信正在工作