简易聊天室--socket.io实现 index.js

index.js

const express = require('express');
const { createServer } = require("http")
const { Server } = require("socket.io")
// express实例
const app = express();
const httpServer = createServer(app);
// socketIo实例
const io = new Server(httpServer, {
    // 跨域
    cors: {
        origin: "*"
    },
});
/**
 * 
 * @param {String} evntName 事件名称
 * @param {String} payload 消息
 * @param {Boolean} skip 是否发送自己信息
 */

// 客户端建立链接
io.on("connection", (socket) => {
    function broadcast(evntName, payload, skip = false) {
        if (!skip) {
            socket.emit(evntName, payload)
        }
        socket.broadcast.emit(evntName, payload)
    }
    // 用户名 初始化事件
    socket.on("init", (name) => {
        socket.nickName = name;
        // 广播所有客户端一段消息,需要给自己发
        broadcast("message", {
            nickName: "系统消息",
            text: `欢迎${name}进入聊天室`
        });

    });
    /**
     * 客户端发的信息 
     * text 消息内容
     */
    socket.on("message", (text) => {
        // 广播其他人
        socket.broadcast.emit("message", {
            nickName: socket.nickName,
            text,
            // 别人发送的时候跳过自己,不需要给自己发
        }, true)
    })
})

// 服务器端口启动
httpServer.listen(3000, () => {
    console.log("启动");
});
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容