Я использую 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);
и клиентский 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 на любом удаленном компьютере, вы должны изменить localhost на фактический IP-адрес сервера
То же самое для:
<script src="http://localhost:8888/socket.io/socket.io.js"></script>