我正在使用node.js和socket.io实时通知系统。 我用简单的聊天代码testing了node.js和socket.io,它与localhost相当不错,但不能从另一个在同一networking本地连接的系统访问。 我的服务器和客户端代码如下所示:
server.js
var express = require('express') , app = express() , http = require('http') , server = http.createServer(app) , io = require('socket.io').listen(server); server.listen(8888);
和客户端html index.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
经过上面的一些评论:
<script> var socket = io.connect('http://localhost:8888'); </script>
为了能够在任何远程计算机上运行Node客户端,必须使用服务器的实际IP来更改localhost
同样的事情:
<script src="http://localhost:8888/socket.io/socket.io.js"></script>