如何在NodeJS Socket.IO中显示连续连接消息?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (80)

当我运行“nodeindex.js”时,‘连接已生成’的消息在命令提示符中不断显示。

我的index.js文件是:

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

server.listen(3000);
app.get('/', function(request, response){
    response.sendFile(__dirname+ '/index.html');        
});

io.on('connection', function(socket){
    console.log('A connection has made');
    // socket.on('chat.message', function(message){
    //  io.emit('chat.message', message);
    // });
});

我的index.html页面是:

<!DOCTYPE html>
<html>
    <head>
        <title>Live Chat</title>
    </head>
    <body>
        <div class="container" id="chat">
            <h1> Chat System </h1>
        </div>
    <script type="text/javascript">
    var socket = io();
    </script>
    </body>
</html>

该怎么解决呢?

提问于
用户回答回答于

你的客户端不断尝试连接一遍又一遍的常见原因是因为你的socket.io客户端和服务器版本不匹配使它们不兼容。你没有在网页中显示如何加载socket.io Javascript,但如果你这样做:

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

然后,你将始终自动从服务器获取与服务器完全匹配的版本(这是socket.io服务器自动添加到Express服务器的路由)。

如果从CDN加载socket.io,则必须切换到上面的内容以从你自己的服务器加载它,或者手动指定与在服务器上运行的CDN完全相同的版本。

扫码关注云+社区

领取腾讯云代金券