使用nodeJS中的WebSocket实现简单的聊天功能

思路整理

webSocket是服务器向客户端发送信息的一种手段
这里是 更多关于 webSocket 的内容
如果想要了解更多关于 nodeJS 中的webSocket内容,点击这里

开始之前,我们需要新建两个客户端和一个服务端,
服务端负责保存与客户端的连接并且在双方都在线上之后传输双方的讯息
客户端需要建立与服务器的连接然后通过指定方式声明自己的身份,然后开始 聊天

服务端

编写前要有 nodejs-websocket 包,可通过 npm i --save nodejs-websocket 安装
大体步骤:
新建服务器 ⇒
监听连接中的事件 ⇒
如果双方都建立过连接就向另一方发送讯息 ⇒
否则验证连接的口令是否正确,正确则将连接保存起来并视为以上线

let ws = require("nodejs-websocket");

let chatA = null,
    chatB = null;
console.log(ws);
ws.createServer((conn) => {
   
   
    // 收到文本请求
    conn.on("text", (msg) => {
   
   
        // 如果双方都建立了连接,可以通信
        if (chatA && chatB) {
   
   
            if (conn === chatA) {
   
   
                // 向另一个连接发讯息
                chatB.send(msg)
            } else {
   
   
                chatA.send(msg)
            }
            return
        }
        // 有人不在线上,判断登录口令
        if (msg === "chatA token") {
   
   
            // 保存连接以判断是否上线与发送讯息
            chatA = conn;
            return
        }
        if (msg === "chatB token") {
   
   
            chatB = conn;
        }
    })
    conn.on("close", () => {
   
   })
    conn.on("error", (code, reason) => {
   
   
        console.log("exit with error code " + code + ", reason:" + reason);
    })
}).listen(8888) // 监听 8888 端口

客户端

大体步骤:
建立于服务器 localhost:8888 的连接(上方监听了端口 8888) ⇒
发出对应的登录口令 ⇒
点击发送按钮将文本框内容获取,将其放在聊天框中并发送请求,随后清空文本 ⇒
收到服务器信息后展现在聊天框中

关键代码:

let chatWindow = document.querySelector(".chat-window"), // 聊天框
            msgbox = document.quer
上一篇: VUE render 函数中使用插槽、具名插槽与作用域插槽
下一篇: javaScript 实现简单的 双向映射 结构
sk1tlz
博客等级 码龄7年 7粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值