几个星期前我通过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]);
});
更新:
答案 0 :(得分:3)
您应该在客户端上显式指定要连接的目标主机名,以避免混淆客户端连接到哪个地址。还有一种更简洁的方法来指定目标端口。
var socket = io.connect('http://localhost/', {
'port': 8080,
'transports': ['websockets']
});