webSocket qq群聊总结

301 阅读1分钟

群聊天是基于webSocket实现的,可实现多个new webSocket同时在线 每个个new webSocket相当于一个用户对象

1 配置

npm install express
npm install ws
npm install html

2. 固定代码

var express = require('express');
var web = express();
web.use(express.static('public'))

var http = require('http')
<!--// 使用http模块创建一个服务对象-->
var httpServer = http.createServer();


var ws = require('ws');
// 创建一个webSocket服务
var Socket = ws.Server
// 创建 Socket对象 server:服务对象http.createServer();
var socket = new Socket({ server: httpSerever })

//当接收到请求时 用httpSerever服务对象来代替web对象
httpSerever.on('request', web)
httpSerever.listen('8088', function () {
    console.log('socket/8088服务器启动//.......')
})

3.流程

1.前端 // 前端主动发起请求,告诉服务器 我要请求
webSocket = new WebSocket('ws://localhost:8088')
2.服务器// connection 接收前端的连接响应 告诉前端已经连接可以发送请求
//wss 哪个前端对象发起的信息  wss指定就是哪个前端对象的socket
socket.on('connection',function(wss){
    
})
3.前端// onopen 当连接到服务器的时候
webSocket.onopen= function(){
    <!--4.发送参数-->
    webSocket.send(JSON.stringify(info))
}
5.服务器//message 当服务器接收到前端的消息的时候
wss.on('message',function(data){
    
}
6.服务器给前端传递参数  wss.send('') wss表示当前登录的某个用户

4.注意要点

4.1实现群发

可将每一次登录的用户wss储存在数据库中 需要时遍历数据库item.send()实现群发