Node.js 如何正确设置从AS3 air到nodejs的套接字连接
我在这里找到了很多示例,但是非常旧的帖子使用了非常旧的node和AdobeAIR版本。我制作了简单的节点js服务器,该服务器通过web浏览器进行了正确的测试。NodeJS是版本6.11Node.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
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);
双向通信正在工作