首页主机资讯Node.js在Ubuntu上如何实现实时通讯

Node.js在Ubuntu上如何实现实时通讯

时间2025-10-10 09:42:04发布访客分类主机资讯浏览1071
导读:在Ubuntu上使用Node.js实现实时通讯,你可以选择多种技术和框架。以下是一些流行的选择: Socket.IO: Socket.IO是一个非常流行的库,它允许你通过WebSocket或其他传输协议实现实时双向通信。它在Node.j...

在Ubuntu上使用Node.js实现实时通讯,你可以选择多种技术和框架。以下是一些流行的选择:

  1. Socket.IO: Socket.IO是一个非常流行的库,它允许你通过WebSocket或其他传输协议实现实时双向通信。它在Node.js环境中工作得非常好,并且有一个JavaScript客户端,可以很容易地集成到网页中。

    安装Socket.IO:

    npm install socket.io
    

    服务器端示例代码:

    const http = require('http');
        
    const socketIo = require('socket.io');
        
    
    const server = http.createServer();
        
    const io = socketIo(server);
        
    
    io.on('connection', (socket) =>
     {
        
      console.log('a user connected');
        
    
      socket.on('disconnect', () =>
     {
        
        console.log('user disconnected');
    
      }
        );
        
    
      socket.on('chat message', (msg) =>
     {
        
        io.emit('chat message', msg);
    
      }
        );
    
    }
        );
        
    
    server.listen(3000, () =>
     {
        
      console.log('listening on *:3000');
    
    }
        );
        
    

    客户端示例代码(HTML/JavaScript):

    <
        script src="/socket.io/socket.io.js">
        <
        /script>
        
    <
        script>
        
      const socket = io();
    
    
      $('form').submit(function(){
        
        socket.emit('chat message', $('#m').val());
        
        $('#m').val('');
        
        return false;
    
      }
        );
    
    
      socket.on('chat message', function(msg){
        
        $('#messages').append($('<
        li>
        ').text(msg));
    
      }
        );
        
    <
        /script>
        
    
  2. WebSocket: WebSocket是HTML5提供的一种API,它允许浏览器和服务器之间进行全双工通信。Node.js有多个库可以实现WebSocket,比如ws

    安装ws

    npm install ws
    

    服务器端示例代码:

    const WebSocket = require('ws');
    
    
    const wss = new WebSocket.Server({
     port: 8080 }
        );
    
    
    wss.on('connection', function connection(ws) {
    
      ws.on('message', function incoming(message) {
        
        console.log('received: %s', message);
    
      }
        );
        
    
      ws.send('something');
    
    }
        );
        
    
  3. Express + Socket.IO: 如果你已经在使用Express框架,你可以将Socket.IO集成到你的应用中,这样可以更容易地管理路由和中间件。

    安装Express和Socket.IO:

    npm install express socket.io
    

    结合Express的服务器端示例代码:

    const express = require('express');
        
    const http = require('http');
        
    const socketIo = require('socket.io');
        
    
    const app = express();
        
    const server = http.createServer(app);
        
    const io = socketIo(server);
        
    
    app.get('/', (req, res) =>
     {
        
      res.sendFile(__dirname + '/index.html');
    
    }
        );
        
    
    io.on('connection', (socket) =>
     {
    
      // 实时通讯逻辑
    }
        );
        
    
    server.listen(3000, () =>
     {
        
      console.log('listening on *:3000');
    
    }
        );
        
    

在Ubuntu上部署Node.js应用通常涉及到设置Nginx作为反向代理,以及配置PM2来管理Node.js进程。这些步骤超出了实时通讯的范畴,但它们是确保你的应用稳定运行的重要组成部分。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js在Ubuntu上如何实现实时通讯
本文地址: https://pptw.com/jishu/722194.html
debian cpustat的输出数据能否导出 debian cpustat在多核系统中表现如何

游客 回复需填写必要信息