2011-12-31 26 views
2

我在接收从socket.io到Flash(actionscript)的数据时遇到问题。来自Node.js的套接字数据在Flash客户端中未收到

我已经试过:

服务器(的NodeJS)socket.io:

var io = require('socket.io').listen(9000); 
setInterval(function() { 
io.sockets.emit('hello'); 
console.log("test"); 
}, 500); 

客户端(动作)插槽();

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

输出

闪存连接成功的服务器和跟踪“连接到闪”,但它不能接收数据。有任何想法吗?

+0

也许这可以帮助你的http:// wellconsidered。 be/post/10519721421/socket-policy-file-for-as3-with-node-js-socket-server一篇由Pieter Michels撰写的文章。 – 2012-11-03 10:18:58

+0

请看看这个帮助我的教程: http://www.rivellomultimediaconsulting.com/node-js-for-flash-and-flex-introduction/ 2014-02-24 09:54:33

回答

0

请参阅http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/Socket.html#includeExamplesSummary并查看名为readResponse的方法。

您需要从流中读取字节。

或者只是使用这个例子,你会知道客户端功能没有问题。

+0

谢谢。问题仍然存在。闪存无法从socket.io读取数据,我认为服务器代码中存在问题。任何人都可以纠正服务器代码? – user1119383 2012-01-01 09:56:18

+0

please helpppppp – user1119383 2012-01-01 10:30:08

+0

我不认为服务器端有什么问题,因为看起来对我来说是正确的,也许你应该先用普通的JS客户端进行测试,以确保它。 – 2012-01-01 13:51:27

0

嗯,我不认为这将工作,因为socket.io有它自己的协议,它使用多种传输方法,如websocket。但是你的动作脚本只是有一个正常的闪存插口我相信。最好的方法是使用普通的socket.io javascript客户端,并使用消息传递系统与您的动作脚本客户端进行通信。在这种情况下,我认为this链接对您很有用,其中介绍了此消息。

更新:

这些库可能是你在找什么: https://github.com/ascorbic/socket-io-actionscript https://github.com/simb/FlashSocket.IO

+0

socket.io可以commnicate惠普动作:) – user1119383 2012-01-01 11:56:50

+0

当我运行该示例客户端连接成功连接到服务器,但它无法接收数据。 :) – user1119383 2012-01-01 11:57:51

+0

以及它可以连接,因为它使用网络套接字,但它不能与socket.io协议,它是建立在传输方法,如网络套接字。无论如何,我做了一个搜索并更新了我的答案。 – 2012-01-01 13:49:06

相关问题