0
我在這裏發現了很多樣本,但使用非常舊的節點和adobe air版本的舊帖子。我做了簡單的節點js服務器,它正在正常工作 - 使用網絡瀏覽器進行測試。節點JS是6.11版本。如何正確設置從AS3空氣到nodejs的套接字連接
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永遠不會被觸發。另外,在連接上我發送一些數據到節點,從來沒有收到。
有什麼想法?