zoukankan      html  css  js  c++  java
  • Nodejs 使用 socket.io 简单实现实时通信

    官网文档: https://www.socket.coms

    安装

    npm install socket.io
    

    服务端

    const express = require('express');
    const app     = express();
    const server  = require('http').createServer(app);
    const io      = require('socket.io')(server);
    
    // 设置模板引擎
    app.set('views',  './view');
    app.engine('.html', require('ejs').__express);
    app.set('view engine', 'html');
    
    // 设置静态文件托管目录
    app.use(express.static('node_modules'));
    
    app.get('/', (request, response) => {
        response.render('index.html');
    });
    
    //监听客户端链接,回调函数会传递本次链接的socket
    io.on('connection', socket => {
        // 监听客户端发送的信息
        socket.on("sentToServer", message => {
            // 给客户端返回信息
            io.emit("sendToClient", {message});
        });
    });
    
    // 监听连接断开事件
    socket.on("disconnect", () => {
        console.log("连接已断开...");
    });
    
    server.listen(3000);
    

    客户端

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>how to use socket</title>
        <script src='/jquery/dist/jquery.min.js'></script>
        <script src="/socket.io/socket.io.js"></script>
    </head>
    <body>
        <form action="#">
            <input type="text" id="message">
            <button id="send">send</button>
        </form>
        <script>
            // 1. 与服务器端建立连接
            const socket = io.connect("http://localhost:3000");
    
            // 2. 监听send按钮点击的事件
            $("#send").click(function(){
                // 获取输入的信息
                let message = $("#message").val().trim();
                // 向服务器端发送信息
                socket.emit("sentToServer", message);
            });
    
            // 3. 获取服务端发送过来的信息
            socket.on("sendToClient", message => {
                console.log(message);
            });
            /**
             * 发布订阅(广播), 一端发布, 可以让多端触发
             */
        </script>
    </body>
    </html>
    
    7942449-f633e0abfe74052e.jpg
    socket
  • 相关阅读:
    jwt
    初入爬虫(java)
    SQL SERVER 查询第20行到30之间的数据
    JS 禁用按钮10秒方法
    My97DatePicker(js日期插件) v4.8
    IOS系统兼容input 监听事件
    SQLServer将一个表的数据导入到另一个表
    JS 截取地址栏指定字符后的内容
    C# EPPlus 导出Excel
    将解压后的文件复制到指定文件夹
  • 原文地址:https://www.cnblogs.com/liaohui5/p/10581605.html
Copyright © 2011-2022 走看看