Node.js:Socket.io不起作用

时间:2013-09-29 22:56:14

标签: node.js socket.io

几个星期前我通过socket.io编写了一个简单的node.js应用程序。我的程序在我的电脑上很好,但当我试图在我的笔记本电脑上运行它。我在控制台上遇到了一个非常奇怪的错误 请注意我正在127.0.0.1:2324上运行节点。我不知道chrome控制台上的ip(0.0.9.20)是什么。

同样,我的代码是正确的,因为它在我的电脑上正常工作

enter image description here
我在我的cmd上得到这个:

enter image description here
我的 paint.html 代码是这样的:

<script src="http://127.0.0.1/node/paint/js/jquery.js"></script>
<script src="http://127.0.0.1/node/paint/js/cursor.js"></script>
<script src="http://127.0.0.1/node/paint/js/controllers.js"></script>
<script src="http://127.0.0.1/node/paint/js/core.js"></script>
<script src="http://127.0.0.1:2324/socket.io/socket.io.js"></script>
<link  href="http://127.0.0.1/node/paint/css/style.css" rel="stylesheet" />

core.js

// broadcat function
    function broadcast(data)
    {
        var socketio = io.connect(serverPort);
        socketio.emit("message_to_server", { pen : data});
    }

    // receive data from server
    var socketio = io.connect(serverPort);
    socketio.on("message_to_client", function(data) 
    {
        var res_brush = data['pen'];
        var brush_data_rec = res_brush['pen'].split('|');
        draw(brush_data_rec[0],
             brush_data_rec[1],
             brush_data_rec[2],
             brush_data_rec[3],
             brush_data_rec[4],
             brush_data_rec[5],
             brush_data_rec[6]);
    });

更新:
enter image description here

1 个答案:

答案 0 :(得分:3)

您应该在客户端上显式指定要连接的目标主机名,以避免混淆客户端连接到哪个地址。还有一种更简洁的方法来指定目标端口。

var socket = io.connect('http://localhost/', {
  'port': 8080,
  'transports': ['websockets']
});