私はリアルタイム通知システムに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