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

    文章

    2474

    浏览量

    67005
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1433

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RTL9301管理型交换机DHCP Server使用方法

    RTL9301管理型交换机DHCP Server使用方法
    的头像 发表于 02-01 10:52 1490次阅读
    RTL9301管理型交换机DHCP Server<b class='flag-5'>使用方法</b>

    从0到1搭建实时日志监控系统:基于WebSocket + Elasticsearch的实战方案

    低成本、实时性高的日志监控系统。 2. 技术选型 数据存储 :Elasticsearch(高效检索与聚合) 实时推送 :WebSocket(全双工通信,避免HTTP轮询) 后端服务 :Node.js
    发表于 01-09 16:43

    ups电源的作用和使用方法详解

    UPS(不间断电源)是一种重要的电力保护设备,主要用于在电网供电异常时提供临时的后备电源,并改善电源质量。以下是其核心作用和使用方法的详细介绍:一、UPS的主要作用核心:提供不间断电力断电保护:在
    的头像 发表于 01-08 09:21 1798次阅读
    ups电源的作用和<b class='flag-5'>使用方法</b>详解

    无线充电器的工作原理核心

    无线充电器的工作原理核心
    的头像 发表于 12-06 10:19 1885次阅读
    无线充电器的<b class='flag-5'>工作原理</b>核心

    芯源IR调制器都有哪些具体使用?使用方法是怎样的?

    芯源IR调制器都有哪些具体使用?以及使用方法是怎样的?
    发表于 12-02 06:33

    堆栈的定义,堆栈的使用方法

    和使用; 对于8086CPU,进出堆栈的只能是2字节的数据。 2 堆栈的使用方法 常用的堆栈相关指令包括PUSH POP PUSHF和POPF,语法如下: PUSH 源操作数;将指定操作数入栈保护 POP
    发表于 11-21 06:49

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

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

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

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

    条码扫码设备的使用方法

    使用方法,能让其充分发挥价值,为各行业的规范化管理提供有力支撑。一、条码扫码设备的主要类型不同场景对条码扫码设备的需求存在差异,目前主流类型可分为四类,适配不同工作
    的头像 发表于 09-17 16:15 1153次阅读
    条码扫码设备的<b class='flag-5'>使用方法</b>

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

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

    烟气检测仪是如何工作的?工作原理大揭秘

    如何工作的呢? 烟气检测仪的工作原理基于多种检测技术,常见的有电化学传感器技术、红外吸收技术等。 电化学传感器技术是一种应用广泛的检测方法。其核心是电化学传感器,它由电极、电解质和透气膜等部分组成。当
    发表于 06-16 16:10

    odf光纤配线架使用方法

    ODF光纤配线架的使用方法主要包括以下几个步骤: 一、准备工作 工具和材料准备:准备好熔接机、光纤切割刀、光纤剥皮钳、光纤清洁工具(如清洁笔、无尘布)、光纤跳线、光纤熔接套管、扎带等工具和材料
    的头像 发表于 05-22 10:11 1795次阅读

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置实用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作传感器复位,我知道这个 GPIO0 用于重置传感器,但我不明白的是选项用户 GPIO 例如GPIO 1可以是User GPIO0,这是什么意思呢?
    发表于 05-19 06:56

    电动调压器的工作原理

    电压调压器是一种用于控制电路中电压的装置,其工作原理因类型而异,以下是几种常见电压调压器的工作原理
    的头像 发表于 05-12 13:46 1619次阅读
    电动调压器的<b class='flag-5'>工作原理</b>

    LCR测试仪的使用方法与注意事项

    LCR测试仪的使用方法、操作注意事项及常见故障处理,帮助读者高效、安全地掌握这一仪器的使用技巧。   二、LCR测试仪的基本使用方法 1. 准备阶段 (1)设备检查:确保测试仪电源线、连接线完好,电源开关关闭。检查测试夹具或探针
    的头像 发表于 04-29 10:36 2w次阅读
    LCR测试仪的<b class='flag-5'>使用方法</b>与注意事项