Socket.IO Hello World

  • 示例

    创建一个名为app.js的文件,并输入以下代码以设置快速应用程序-
    
    var app = require('express')();
    var http = require('http').Server(app);
    
    app.get('/', function(req, res) {
       res.sendFile('index.html');
    });
    
    http.listen(3000, function() {
       console.log('listening on *:3000');
    });
    
    我们将需要一个index.html文件来提供服务,创建一个名为index.html的新文件,并在其中输入以下代码-
    
    <!DOCTYPE html>
    <html>
       <head>
          <title>Hello world</title>
       </head>
       <body>Hello world</body>
    </html>
    
    要测试是否有效,请转到终端并使用以下命令运行此应用程序-
    
    nodemon app.js
    
    这将在localhost:3000上运行服务器。转到浏览器并输入 localhost:3000进行检查。这将设置我们的快速应用程序,并且现在在根路由上提供HTML文件。现在,我们将需要Socket.IO并在每次用户转到此页面时记录“用户已连接”,并在每次有人关闭此页面时记录“用户已断开连接”。
    
    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    app.get('/', function(req, res) {
       res.sendfile('index.html');
    });
    
    //Whenever someone connects this gets executed
    io.on('connection', function(socket) {
       console.log('用户已连接');
    
       //Whenever someone disconnects this piece of code executed
       socket.on('disconnect', function () {
          console.log('用户已断开连接');
       });
    });
    
    http.listen(3000, function() {
       console.log('listening on *:3000');
    });
    
    require('socket.io')(http) 创建一个附加到http服务器的新socket.io实例。io.on事件处理程序处理连接,断开等,在它的事件,使用Socket对象。我们已经将服务器设置为记录有关连接和断开连接的消息。现在,我们必须包含客户端脚本并在那里初始化套接字对象,以便客户端可以在需要时建立连接。该脚本由我们的io服务器在'/socket.io/socket.io.js'提供。完成上述过程后,index.html文件将如下所示-
    
    <!DOCTYPE html>
    <html>
       <head>
          <title>Hello world</title>
       </head>
       <script src = "/socket.io/socket.io.js"></script>
       
       <script>
          var socket = io();
       </script>
       <body>Hello world</body>
    </html>
    
    如果现在转到localhost:3000(确保服务器正在运行),则将在浏览器中打印Hello World。现在检查您的服务器控制台日志,它将显示以下消息-
    
    用户已连接
    
    如果刷新浏览器,它将断开套接字连接并重新创建。您可以在控制台日志中看到以下内容-
    
    用户已断开连接
    用户已连接
    
    现在,我们可以使用Socket连接了。这是在Socket.IO中设置连接的简便性。