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

rak*_*kib 2 livechat node.js socket.io laravel

我正在尝试使用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);
    // });
});
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

jfr*_*d00 8

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

<script src="/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)

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

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