晚安,
我目前正在测试AS3 + NodeJS通信,以深入研究多人游戏。我目前在Flash方面经验非常丰富,但对NodeJS来说却很陌生。
我遇到的问题是Node发送的数据与Flash接收的数据不同。
采取以下工作NodeJS代码(我不会问它是对还是错,或者#34;最佳实践" - 即时测试不同的东西)。特别关注客户'对象和"数据"事件处理程序:
var net = require('net');
var mySocket;
var clients = {
'0': 'myTest'
};
var server = net.createServer(function(socket) {
mySocket = socket;
mySocket.on("data", function(data){
myData = data + " -- " + clients[0];
console.log("Data=" + myData);
mySocket.write(myData);
});
});
server.listen(3000, "127.0.0.1");
当"你好世界"将数据发送到服务器,预期输出为:
控制台: "数据=你好世界 - myTest"
闪光灯: "收到的数据:[hello world - myTest]"
控制台输出我期望的信息,但Flash输出: -
"收到的数据:[ - myTesthello world]"
我的AS3连接类的几个片段如下: -
public function createConnection():void{
this.currStatus = "Connecting..";
this.mySocket = new XMLSocket("localhost",3000);
this.mySocket.addEventListener(DataEvent.DATA, onReceiveData);
为了处理收到的数据,我们现在只追踪它:
private function onReceiveData(evt:DataEvent):void{
//We have recieved some data from the server. Act upon it..
//not sure yet what it will do with the data.. just trace for now.
trace("Data Received: [" + evt.data + "]");
}
如果有人能够指出为什么数据在Flash中接收时的顺序不同,那么这将是一个很好的学习点。正如我所说,我对NodeJS非常新,所以可能会有一些我缺少的东西(我知道没有.on" connect" ....把它拿出来测试它)。
提前致谢。