一尘不染

在nodejs socket.io中显示连续连接消息

node.js

我正在尝试使用laravel开发实时聊天应用程序。我遇到了问题。当我运行“ node index.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>

我该如何解决?


阅读 281

收藏
2020-07-07

共1个答案

一尘不染

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

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

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

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

2020-07-07