对第二篇文章的改造:
将消息包装成一个对象
(1)type:消息的类型 0 : 进入聊天室的消息 1: 用户离开聊天室的消息 2: 正常的聊天消息
(2)msg:消息的内容
(3)time:聊天的具体时间
服务端:
// 引入 nodejs-websocket
const ws = require('nodejs-websocket')
// 当前聊天室的人数
let count = 0
// 定义消息类型
const TYPE_ENTER = 0
const TYPE_LEAVE = 1
const TYPE_MESSAGE = 2
// 创建一个server 监听连接
// connect 表示每一个连接到服务器的用户 都会有一个connect
const server = ws.createServer((connect) => {
// 有人连接到人数加一
count++
// 模拟用户的一个名字
connect.userName = `用户${count}`
// 通知所有人 userName加入聊天室
broadcast({
msg: `加入聊天室`,
type: TYPE_ENTER,
time: new Date().toLocaleDateString(),
user: connect.userName
})
// 开始接受数据
connect.on('text', (data) => {
broadcast({
msg: data,
type: TYPE_MESSAGE,
time: new Date().toLocaleDateString(),
user: connect.userName