我正在寻找一种使用 Node.js 服务器创建 unity3d 游戏的方法。我熟悉 Socket.io,所以我想使用它。
我得到了“UnitySocket-IO”,但它不起作用,它说:
与 http://localhost:80/初始化握手时出错
我在客户端(Unity)上的代码是:
#pragma strict
var client:SocketIOClient.Client = new SocketIOClient.Client("http://localhost:80/");
function Start () {
//client.Opened += SocketOpened;
client.Message += SocketMessage;
//client.SocketConnectionClosed += SocketConnectionClosed;
client.Error +=SocketError;
client.Connect();
}
function SocketMessage(sender, e) {
client.Send("Pong");
}
function SocketError(sender, e:SocketIOClient.ErrorEventArgs) {
Debug.Log(e.Message);
}
服务器上的代码(Node.JS):
var io = require('socket.io')();
io.listen(80);
io.on("connection", function (socket) {
"use strict";
console.log("Connected!");
setTimeout(function () {
console.log("Sent ping.");
socket.emit("Ping!");
}, 2000);
io.on("message", function (data) {
console.log(data);
});
});
我怀疑这是 1.0 和 unitysocket-io 库之间的问题。有没有可以在 Unityscript 中使用的替代方案?
我尝试降级到 0.9,但仍然不起作用,我想使用当前版本的东西。谢谢!
最佳答案
您可能想尝试使用其他端口。端口 80 通常被其他应用程序或进程使用,如果它正在使用,socket.io 将无法使用它。将其更改为 3000 或您知道未使用的其他值,看看是否可以解决问题。
关于node.js - Socket.IO 1.0 与 Unity3d 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850690/