【发布时间】:2015-03-12 06:07:16
【问题描述】:
我正在使用 node.js 和 socket.io 作为实时通知系统,所以我用简单的聊天代码测试了 node.js 和 socket.io,它在 localhost 上非常好,但无法从另一个与同一网络本地连接的系统,我的服务器和客户端代码如下所示
server.js
var express = require('express')
, app = express()
, http = require('http')
, server = http.createServer(app)
, io = require('socket.io').listen(server);
server.listen(8888);
和客户端htmlindex.html
<script src="http://localhost:8888/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
var socket = io.connect('http://localhost:8888');
</script>
它在我的浏览器上使用这个 url http://localhost/schat/index.html 工作,但当我尝试使用我的 ip 192.171.56.23/schat/index.html 从另一个系统连接时无法工作,但所有其他 html 文件工作正常,下面是我的 netstat 输出
[root@localhost schat]# netstat -pan | grep 8888
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 8068/node
tcp 0 0 127.0.0.1:8888 127.0.0.1:38273 ESTABLISHED 8068/node
tcp 0 0 127.0.0.1:38273 127.0.0.1:8888 ESTABLISHED 7990/firefox
【问题讨论】:
-
尝试更改 url 以包含 socket.io.js 为
<script src="/socket.io/socket.io.js"></script> -
但它在 firebug 上抛出错误`“NetworkError: 404 Not Found - localhost/socket.io/socket.io.js”`