node.js, socket.io только работающий над localhost, не может получить доступ от интранет

Я использую 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
0
задан 12 March 2015 в 11:43
1 ответ

После некоторых комментариев выше:

<script>
    var socket = io.connect('http://localhost:8888');
</script>

Чтобы иметь возможность запускать клиент Node на любом удаленном компьютере, вы должны изменить localhost на фактический IP-адрес сервера

То же самое для:

<script src="http://localhost:8888/socket.io/socket.io.js"></script>
1
ответ дан 4 December 2019 в 17:01

Теги

Похожие вопросы