1

晚上好,

我目前正在测试 AS3+NodeJS 通信以深入研究多人游戏。我目前在 Flash 方面非常有经验,但对 NodeJS 还是很陌生。

我遇到的问题是 Node 发送的数据与 Flash 接收的数据不同。

采用以下工作 NodeJS 代码(我不是在问它是对还是错,或者是为了“最佳实践”——我在测试不同的东西)。具体查看“客户”对象和“数据”事件处理程序:

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

当“hello world”数据发送到服务器时,预期的输出是这样的:

控制台:“数据=你好世界--myTest”

Flash:“收到的数据:[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”.... 拿出来测试它)。

提前致谢。

4

0 回答 0