Node.js:Socket.io不起作用
我已经在几周前通过socket.io写了一个简单的node.js应用程序。 我的程序在我的电脑上很好,但是当我尝试在我的笔记本电脑上运行它时。 我在控制台上遇到了一个非常奇怪的错误。
注意我在127.0.0.1:2324
上运行节点。 我不知道什么是在Chrome控制台上的IP( 0.0.9.20
)。
同样, 我的代码是正确的,因为它在我的电脑上工作正常 。
我在我的cmd上得到这个:
我的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]); });
更新:
您应该明确指定要连接的客户端上的目标主机名,以避免混淆连接到哪个地址的客户端。 还有一个更清晰的方法来指定一个目标端口。
var socket = io.connect('http://localhost/', { 'port': 8080, 'transports': ['websockets'] });