最后更新:2021-10-17 09:17

概览
WebSocket基于TCP全时通信协议, 其成本控制比 HTTP 长期猜测要低。 它通过 HTTP/ 1.1 协议 101 状态代码进行握手。 所以当我们使用 nginx 处理它时, 我们必须更新配置协议到 HTTP/ 1. Version 1 。
为了建立 Websocket 连接, 我们通过客户端发送请求, 然后等待服务器回复, 即所谓的握手程序 。
案例
微信登录必须为大家所熟知,因为它已广泛用于所有社会环境。
它还从公众获得微信的二维和微码途径发展而来,这根本不同。
这是 Websocket 应用程序的微邮件扫描 。
方案概括
简而言之,用户访问网站,然后将浏览器(ClientA)和WS服务器之间的长链接指定为ID(IndA)。
ClieentA 将 IDA 传送到服务器, 以便获得一个短代码 。 使用 wxacode. get unlipped 在服务器接收服务器后创建一个包含 websocket 登录页面( 如页面/ index/ ws Login) 页面参数的短程序代码, 并设置场景值参数场景为 IDA 。 生成后, 返回客户端A 。
在此之后,当用户获得微小代码时,它使用微信扫描访问我们小程序(ClieentB)的页面/index/ws Login页面,通过现场价值(现场)检索IDA。

用户确认登录, 我们有一个微小的应用程序, 向服务发送触发事件(可以是 ws 或 http),
此例的小程序指示客户的 微信信息xx 验证登录, 当登录成功时, 我将成功登录传送到 idA socket, 反之亦然 。
当浏览器( ClientA) 在服务结束时通知事件时, 浏览器可以从服务器获取一个标记, 登录并实时执行页面跳跳 。
自然不是很简单吗?
当然,这足以作为示范 创造一个更强大的高服务。
数据交互图
个人客户通信(扫描登录现场)

双向客户通信(聊天室IMM方案)

这只是最基本的假设,比这复杂得多
代码实现
Wesserve 是一个方便的单一例子, 所有插座示例都保存在记忆中 。
有三个终点:网络、 mp 和服务器。
demo
另一种思路
在这个例子中,我们给每一个从客户那里连接的弱点指定一个代号,然后把它隐藏在微小程序代码的参数中,使我们更难建立一个缓存,以防我们依赖的第三方服务执行迟缓,导致我们自己服务受挫。 有没有办法减少这种不确定性?
我完成了一项任务:
对于命名空间,发行代码将转换为 0-999, 然后1,000 0-999 子代码是预制的, 上传到 CDN 上, 其代号 CDN url 被记录在数据库中, 这样当用户到达网站端登录页面时, 他们就会找到这个命名空间规则, 并按顺序指派给未占用的代号 。 假设号 10 (前九个仍然链接 ) 。
所以它是一个小的代码 允许你从自己的数据库中获取链接, 在网站上显示一个二维代码, 记录使用微信扫描, 并在阴蒂之间进行互动。
然而,当用户数量高时,代码可能还不够,这种建议既可以预估用户数量,也可以设定一项任务,以检测代码数量、实时代码、插入数据库、上传CDN和更新Ws发布规则。
扩展后如图所示:

扩展阅读
多实例模式
在许多流程或集群中,例如客户端A、服务器A、客户端B、服务器B如何运作,它们之间如何互动?
相反,以单一网关的形式建立一个登记中心,处理统一发送和调度,然后将逻辑计算权下放给其他活动。
另一个选择是建立一个出版/订阅系统(例如Redis' Pub/Sub-Mechanism),以确保若干服务可相互交流。
协议对应:
http->ws https->wss
本文由 在线网速测试 整理编辑,转载请注明出处。