最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node.js中,仅socket.io工作的地方,无法从内部网络系统访问

运维笔记admin10浏览0评论

node.js中,仅socket.io工作的地方,无法从内部网络系统访问

node.js中,仅socket.io工作的地方,无法从内部网络系统访问

我使用Node.js和受socket.io的实时通知系统,所以我已经测试的Node.js和简单的聊天代码socket.io,它几乎与本地主机好,但不能从其他系统访问相同的这与同一网络本地连接,我的服务器和客户端的代码看起来像下面

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=".6.4/jquery.min.js"></script>
<script>
    var socket = io.connect('http://localhost:8888');
</script>

它的工作在我的浏览器这个网址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        
回答如下:

下面是从socket.io docs一个工作示例(略有修改)。

使用<script src="/socket.io/socket.io.js"></script>

而不是<script src="http://localhost:8888/socket.io/socket.io.js"></script>

并使用var socket = io.connect(window.location.origin);

而不是var socket = io.connect('http://localhost:8888');

(Sotsket.yo v1.z.5,快速vch.12.2)

的index.html

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect(window.location.origin);

    socket.on('news', function (data) {
        console.log(data);
        socket.emit('my other event', { my: 'data' });
    });
</script>

server.js

var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);

server.listen(8888);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
发布评论

评论列表(0)

  1. 暂无评论