西安市干部教育网站建设,南京做网站是什么,网站图一般做多少分辨率,响应式网站开发框架我们知道WebSocket是可以双向通信的#xff0c;把极简聊天室代码又改了一下#xff0c;前端发信息到后端也使用websocket#xff0c;其实代码量更少了。。。
const express require(express);
const app express();
var wsServer require(express-ws)(app)var msgs[];ap…我们知道WebSocket是可以双向通信的把极简聊天室代码又改了一下前端发信息到后端也使用websocket其实代码量更少了。。。
const express require(express);
const app express();
var wsServer require(express-ws)(app)var msgs[];app.use(/, express.static(./));app.ws(/ws, (ws,req){ws.send(JSON.stringify(msgs));ws.on(message, msg {msgs.push(JSON.parse(msg));wsServer.getWss().clients.forEach(client{ client.send(msg) });})
});app.listen(3000, () { console.log(极简聊天室WebSocket版服务启动); })
!DOCTYPE html
html
head
title极简聊天室websocket版/title
meta charsetutf-8
script srcjquery-3.6.1.min.js/script
/head
body
input idmsg/inputbutton idsend onclicksendmsg()发送/button
ul idmsgs
/ul
script
var uid;
let reg new RegExp((^|) uid ([^]*)(|$),i);
let r location.search.substr(1).match(reg);
uid(r!null)?decodeURI(r[2]):me;var ws new WebSocket(http://localhost:3000/ws);ws.onmessage event {let jvarJSON.parse(event.data);if (jvar instanceof Array) { jvar.forEach(item{ $(#msgs).append(li${item.uid} 说: ${item.msg}/li) }) }else { $(#msgs).append(li${jvar.uid} 说: ${jvar.msg}/li) }
}function sendmsg() { ws.send(JSON.stringify({uid:uid,msg:$(#msg).val()})) }
/script
/body
/html
效果跟前面一样就不再贴图了。