0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

WebSocket工作原理及使用方法

汽车玩家 来源:今日头条 作者:新钛云服 2020-05-05 22:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

它有很多名字; WebSocket,WebSocket协议和WebSocket API。从首选的消息传递应用程序到流行的在线多人游戏,WebSocket在当今最常用的Web应用程序中是至关重要的。

根据定义,WebSocket是通过单个TCP连接提供全双工(双向通信)通信信道的计算机通信协议。此WebSocket API可在用户的浏览器和服务器之间进行双向通信。用户可以向服务器发送消息并接收事件驱动的响应,而无需轮询服务器。 它可以让多个用户连接到同一个实时服务器,并通过API进行通信并立即获得响应。

WebSocket工作原理及使用方法

WebSockets允许用户和服务器之间的流连接,并允许即时信息交换。在聊天应用程序的示例中,通过套接字汇集消息,可以实时与一个或多个用户交换,具体取决于谁在服务器上“监听”(连接)。

WebSockets不仅限于聊天/消息传递应用程序。它们适用于需要实时更新和即时信息交换的任何应用程序。一些示例包括但不限于:现场体育更新,股票行情,多人游戏,聊天应用,社交媒体等等。

WebSockets还会考虑代理和防火墙等危险,使得任何连接都可以进行流式传输。它支持单个连接的上游和下游通信。 它还减轻了服务器的负担,允许现有机器支持同时连接。

这是现代Web应用程序中的示例实现WebSockets。在下面的示例中,我使用WebSockets作为带有Rails 5 API后端和React.js前端的即时消息应用程序。这绝不是一个指南,而是一个如何使用它的例子。我使用了Action Cable,它是Rails的包装器,可以无缝地集成Ruby中WebSockets的主要功能,并允许在整个域模型中轻松实现。 它内置于Rails 5.2中,因此无需安装/执行任何外部库或gem。

它的工作原理是Pub-Sub(发布和订阅)。它适用于发送者将数据(发布者)发送给抽象数量的收件人(订阅者),而无需指定他们是谁。

第一步是将服务器挂载到路由文件中,这样前端就可以从流中得到endpoint:

WebSocket工作原理及使用方法

在第5行,我设置了ActionCable服务器端点

下一步是在后端创建一个通道,以便在实时创建消息时对消息进行流式处理。

WebSocket工作原理及使用方法

这是管理消息创建以及广播消息的消息通道

这里我们有两种方法,订阅和接收。订阅的第一种方法允许将消息通道流式传输到连接的用户或订户。 接收的第二种方法管理消息创建和广播消息。我实现了JWT用户身份验证,以便可以将消息追溯到用户,只有具有有效用户帐户的消息才能创建消息。

对于我的应用程序的前端,我使用它们npm package actioncable从客户端到服务器端连接到WebSocket API。 这个包直接来自于Rails的团队。 使用此库,我实例化了一个cableApp实例,并将其作为props传递给需要访问WebSocket连接的组件。

WebSocket工作原理及使用方法

导入actionCable并创建了一个cableApp实例,然后将cableApp连接到我的后端端点“/ cable”并将其传递给需要连接的组件

然后,我通过React.js生命周期方法componentDidMount()连接到WebSocket的连接,并在每次将组件安装到DOM时建立连接。

WebSocket工作原理及使用方法

在componentDidMount()中,我建立了客户端以连接到WebSocket协议,该协议从我的Rails API中的“messagesChannel”流式传输。

现在,每次创建消息并将其发送到接收方法时,订阅(d)用户将立即接收并能够实时查看消息。此实现支持订阅同一频道的多个用户。因此,如果多个用户签名并订阅了相同的频道,他们可以发送所有订阅者都能看到的消息以及从其他订阅者接收消息。当然,你可以限制为两个人,并使它成为p2p,但是那样还有什么乐趣呢?

我希望通过阅读本文,可以看到WebSockets的潜力。它使自己成为一个宝贵的资源,在这个时代,信息交换需要很快完成。 希望读者将在自己的项目中实现它们。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    2147

    浏览量

    66233
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1418

    浏览量

    83016
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文吃透WebSocket:智能物联网通信的入门与实战全攻略!

    想在智能物联网项目中实现设备与平台的实时“对话”?WebSocket是你的最佳选择。本文作为一份完整的学习与实战攻略,从基础概念讲起,逐步深入到编码实践,涵盖协议细节、开发框架与常见问题
    的头像 发表于 10-15 18:16 151次阅读
    一文吃透<b class='flag-5'>WebSocket</b>:智能物联网通信的入门与实战全攻略!

    智能物联网实时通信实战:WebSocket技术解析 !

    在设备海量接入、数据高频交互的物联网时代,WebSocket以其低延迟、双向通信的优势脱颖而出。本文全面解析其在智能物联网中的技术实现路径,涵盖协议分析、服务端/客户端开发、心跳保活与错误处理,并
    的头像 发表于 10-15 18:16 813次阅读
    智能物联网实时通信实战:<b class='flag-5'>WebSocket</b>技术解析 !

    锡膏的储存及使用方法详解

    锡膏是一种常用的焊接辅助材料,广泛应用于电子、电器、通讯、仪表等行业的焊接工艺中。正确的储存和使用方法对于保证锡膏的品质和焊接效果至关重要。本文将就锡膏的储存和使用方法进行详细介绍,希望能对广大焊接工作者有所帮助。
    的头像 发表于 07-18 17:36 1063次阅读
    锡膏的储存及<b class='flag-5'>使用方法</b>详解

    微动开关的工作原理

    微动开关的工作原理
    的头像 发表于 04-17 09:00 2723次阅读

    直流电机的基本工作原理与结构

    本章主要讨论直流电机的基本结构和工作原理,讨论直流电机的磁场分布、感应电动势、电磁转矩、电枢反应及影响、换向及改善换向方法,从应用角度分析直流发电机的运行特性和直流电动机的工作特性。
    发表于 02-27 01:03

    AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

    WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用Javacript语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程
    的头像 发表于 02-26 11:42 637次阅读
    AWTK-WEB 快速入门(6) - JS <b class='flag-5'>WebSocket</b> 应用程序

    振弦式锚杆应力计的工作原理与数据计算方法

    准确、稳定性好、长期监测可靠等优点。南京峟思将详细介绍振弦式锚杆应力计的工作原理及其数据计算方法。一、工作原理振弦式锚杆应力计的工作原理基于振弦的频率与所受张力之
    的头像 发表于 02-24 13:49 785次阅读
    振弦式锚杆应力计的<b class='flag-5'>工作原理</b>与数据计算<b class='flag-5'>方法</b>

    AWTK-WEB 快速入门(5) - C 语言 WebSocket 应用程序

    导读WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用C语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程序先安装
    的头像 发表于 02-19 11:49 894次阅读
    AWTK-WEB 快速入门(5) - C 语言 <b class='flag-5'>WebSocket</b> 应用程序

    精密空调操作使用方法详解

    精密空调操作使用方法详解
    的头像 发表于 02-10 14:44 1886次阅读
    精密空调操作<b class='flag-5'>使用方法</b>详解

    延时继电器的工作原理和接线方法

    能源消耗、保护电气设备、安全稳定运行。 工作原理 延时继电器的工作原理基于一个或多个可调的计时器电路,以及与继电器相连的控制电路。其核心部件包括计时器电路和继电器电路。计时器电路通常由电容器和电阻器等元件组成,通过调节
    的头像 发表于 02-07 16:09 2839次阅读

    无线收发器工作原理,无线收发器怎么使用

    无线收发器作为现代通信技术的重要组成部分,广泛应用于各个领域,包括无线通信、物联网、远程控制和无线传感器网络等。本文将深入探讨无线收发器的工作原理,同时提供详细的使用方法
    的头像 发表于 01-29 15:31 2543次阅读

    相位测量仪工作原理,相位测量仪怎么使用

    相位测量仪作为电子测量领域的重要工具,广泛应用于电力、通信、自动化控制等多个行业。它通过精确测量电压、电流等信号之间的相位关系,为工程师和技术人员提供了关键的数据支持。本文旨在深入探讨相位测量仪的工作原理,并详细介绍其使用方法
    的头像 发表于 01-29 15:07 3878次阅读

    超级电容电池的工作原理

    超级电容电池是一种介于传统电容器与电池之间的新型储能装置。其工作原理主要基于电荷分离和电场存储,以下是关于超级电容电池工作原理的详细解释:
    的头像 发表于 01-27 11:17 1988次阅读

    快速了解电源模块的使用方法

    电源是整个电路可靠工作的核心部分。然而,由于电源电路的电流和发热量较大,容易出现故障。今天我为大家介绍一下电源模块的使用方法
    的头像 发表于 01-21 15:24 1393次阅读

    AB伺服软件使用方法

    AB伺服软件使用方法
    发表于 12-24 14:45 1次下载