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

Node.js 在nodejs socket.io中显示连续连接消息,node.js,laravel,socket.io,livechat,Node.js,Laravel,Socket.io,Livechat,我正在尝试使用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(r

我正在尝试使用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>

现场聊天
聊天系统
var socket=io();

如何解决此问题?

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

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

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


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

例如,将端口号从3000更改为7000。

如果您在React/NextJs上使用它 只需将其声明为全球性

import socketClient from "socket.io-client";
const SERVER = "http://127.0.0.1:8000";
const socket = socketClient(SERVER);
export default chatApplication=()=>{
    //main component 
}

可能的重复并不能提供问题的答案。一旦你有足够的钱,你将能够;相反@克丽丝:这可能会提供一个答案。例如,如果Denis认为3000上存在某种类型的端口冲突,那么更改端口可能是一个解决方案。然而,如果是这样的话,这个答案肯定会受益于对OP为什么应该改变其端口的额外解释,特别是考虑到有一个被接受的答案,并且有许多投票提出了不同的解决方案。如果可能,请努力提供额外的解释,而不仅仅是代码。这些答案往往更有用,因为它们可以帮助社区成员,特别是新开发人员更好地理解解决方案的理由,并有助于避免需要解决后续问题。非常感谢!这个答案是金的。为我节省了数小时的时间试图找出socket.io客户机为何陷入循环。