Данные сокета из Node.js не получены в клиенте Flash - PullRequest
2 голосов
/ 01 января 2012

У меня проблема с получением данных из socket.io во Flash (actionscript).

Я пробовал:

Сервер (nodejs) socket.io:

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

Клиент (actioncript) 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 успешно подключается к серверу и отслеживает «Connected to flash», но не может получать данные. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 01 января 2012

Ну, я не думаю, что это сработает, потому что у socket.io есть собственный протокол, который использует несколько методов транспорта, таких как websocket. Но у вашего сценария действий просто нормальная флеш-розетка. Лучше всего использовать обычный клиент JavaScript socket.io и использовать систему обмена сообщениями для связи с клиентом сценария действий. В этом случае, я думаю, эта ссылка полезна для вас, в которой описывается этот обмен сообщениями.

Обновление:

Эти библиотеки могут быть тем, что вы ищете: https://github.com/ascorbic/socket-io-actionscript https://github.com/simb/FlashSocket.IO

0 голосов
/ 01 января 2012

См. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/Socket.html#includeExamplesSummary и посмотрите на метод, называемый readResponse.

Вам необходимо прочитать байты из потока.

Или просто воспользуйтесь этим примером, и вы поймете, что с функциональностью на стороне клиента все в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...