标签:course 知识 start append text 服务器 操作 本地 src
关于websocket api的知识点,见上篇章《HTML5-Websocket》。
A和B聊天:
B再给A回消息的原理同上三步骤
“服务器发送消息给B”这里。
HTTP协议中,服务器是基于“请求 到 响应”的一个模型的 。也就是说,服务器无法主动发送消息给客户端,他必须接收一个请求才能响应。
因此传统HTTP协议要想实现聊天室就必须客户端实时的(比如每秒1次)发送ajax轮询请求,如果服务器有消息需要返回就会响应,如果没有就是空轮询。
一次请求后,链接断开,下次再需要获取最新消息,还需要重新发送请求。这样来看,毫无疑问是耗费性能、浪费带宽。
在H5新增的Websocket协议中,实现服务器和客户端全双工的通信方式,两台机器之间只要握手成功(建立连接)后,就可以互相主动给对方发送消息。
就像我们现实中两个人聊天一样了。谁有话谁开口。
初步应用代码见上篇《 HTML5 - 开发一个自己的websocket服务器》,主要记录了websocket怎么启动一个本地服务并应用的。
在之前代码的基础上,新增聊天室该有的广播内容、以及新增消息的append功能。
1、 新人进入聊天室,服务器广播发送给大家“xx进入聊天室”
2、某人离开聊天室,服务器广播发送给大家“xx离开聊天室”
3、某人发送消息到聊天室,服务器广播发送给大家“xx:xx发送的消息”
要做到广播,就需要server.connections,
这个数组记录了所有连接到websocket服务器的用户(也就是进入聊天室的人),通过遍历这个数组,然后给数组中每个连接进来的用户对象发送消息即可。
三个标签页 - 模拟三个人进入了聊天室
聊天内容截图:
以上,来自腾讯课堂课程学习笔记。
腾讯课堂地址:https://ke.qq.com/course/355307
下篇:《socket.io实现一个网页版的微信聊天工具》 尽请期待~
标签:course 知识 start append text 服务器 操作 本地 src
原文地址:https://www.cnblogs.com/padding1015/p/10987216.html