当前位置: 首页 > 面试题库 >

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

叶鹭洋
2023-03-14
问题内容

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

我该如何解决?


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 我希望能够访问网页,它将运行python函数并在网页中显示进度。 因此,当你访问网页时,你可以看到脚本的输出,就像你从命令行运行脚本一样,并在命令行中看到输出。 我需要在功能中做什么? 我需要在模板中做什么? 编辑: 我正在尝试将Markus Unterwaditzer的代码与模板一起使用。 Python代码 它可以运行,但我在浏览器中看不到任何内容。 问题答案: 这是一个非常简单的应

  • 我已经使用jsplumb在to div块之间创建了一个连接。我想在连接线上添加箭头。现在箭头没有显示出来。我对此一无所知。 知道为什么箭没有出现吗?有东西不见了吗?多谢了。 `HTML:ABC XYZ CSS: Javascript:jsPlumb.connect({source:“window20”,target:“window21”,锚点:[“Bottom”,“Top”],连接器:“direc

  • 嗨,我想连接到openfire服务器。使用以下代码: 它在connection.connect()上失败;堆栈跟踪是: 在服务器端,消息是: 我试过在连接配置上使用不同的设置,比如玩安全模式。我也试过给它一个回调处理程序,但是从来没有调用过。 编辑:启用调试后,我得到以下信息:

  • 我正在使用Kafka连接JDBC源连接器从数据库中的视图中读取并将其发布在kafka上,它工作正常。 我的用例是用户可以创建多个对象,并且对象的顺序在我的应用程序中很重要。我想使用用户 ID 作为我发布到主题中的所有消息的消息密钥,以保持它们的顺序。 我的问题是,如何在Kafka connect source连接器中定义消息键?

  • 在blade模板中显示查询结果时,我遇到了一些困难。基本情况:我有两张桌子;国家和发行人。国家模型与发行人有许多关系,反之亦然。这两种关系都在模型中正确定义。我试图显示一个发行人列表,其中也包含该国的名称(国家)。我在IssuersController中的查询如下: 此查询在dd()中有效;显示它为每个发卡机构返回一个数组,其中包括所有发卡机构数据以及相应的国家名称(如nation)。完美的然而,