建立一个微信扫描登录系统,作为网络库的入门。

      最后更新: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如何运作,它们之间如何互动?

      1. 相反,以单一网关的形式建立一个登记中心,处理统一发送和调度,然后将逻辑计算权下放给其他活动。

      2. 另一个选择是建立一个出版/订阅系统(例如Redis' Pub/Sub-Mechanism),以确保若干服务可相互交流。

      协议对应:

      http->ws https->wss

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类