我遇到从socket.io
接收数据到Flash(动作脚本)的问题。
我试过了:
服务器(nodejs)socket.io:
var io = require('socket.io').listen(9000);
setInterval(function() {
io.sockets.emit('hello');
console.log("test");
}, 500 );
客户端(actionscript)Socket();
import flash.net.Socket;
import flash.events.*;
var socket:Socket = new Socket();
Security.allowDomain("*");
socket.connect("localhost", 9000);
socket.addEventListener(Event.CONNECT, onConnect);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
function onConnect( evt:Event ):void
{
trace( "Connected to flash");
}
function socketDataHandler(evt:ProgressEvent):void
{
trace("socketDataHandler: " + evt);
}
输出
Flash将成功连接到服务器并跟踪“已连接到闪存”但它无法接收数据。有什么想法吗?
答案 0 :(得分:0)
请参阅http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/Socket.html#includeExamplesSummary并查看名为readResponse
的方法。
您需要从流中读取字节。
或者只是使用这个例子,您就会知道客户端功能没有问题。
答案 1 :(得分:0)
嗯,我认为这不会起作用,因为socket.io拥有自己的协议,它使用了几种传输方法,例如websocket。但是你的动作脚本只是有一个普通的闪存插座我相信。最好的是您使用普通的socket.io javascript客户端,并使用消息传递系统与您的动作脚本客户端进行通信。在这种情况下,我认为this链接对您有用,其中描述了此消息传递。
更新
这些库可能是您正在寻找的: https://github.com/ascorbic/socket-io-actionscript https://github.com/simb/FlashSocket.IO