node.js - Socket.IO 1.0 与 Unity3d 不工作

标签 node.js unity-game-engine socket.io unityscript

我正在寻找一种使用 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/

相关文章:

unity-game-engine - Cinemachine - 从代码中更改来自 CinemachineVirtualCamera 的 TrackedDolly 路径

node.js - 为什么我们为 Node 使用服务器端模板引擎?

node.js - 如何将nodejs nightly build安装到我的Windows环境中

c# - 在 Unity Inspector 中查看数组的枚举索引

android - UnityPlayer 作为具有透明背景的 subview ? (统一游戏引擎)

php - Laravel Echo 无法使用 socket.io 捕获事件

javascript - kafka-node 有没有办法在崩溃后请求收到的消息?

node.js - 从 node-gyp 调用 make

node.js - 既然 connect 不再使用 parseCookie 方法,那么我们如何使用 express 获取 session 数据呢?

mysql - node-mysql 池和 socket.io