当前位置: 首页 > 知识库问答 >
问题:

网络钩子和网络口袋之间的区别?

邬良才
2023-03-14

我一直想做实时聊天。

多年前,我在PHP Ajax Mysql中就这样做了,并破坏了我的服务器。

然后我用Flash试了一个文本文件。我放弃了,已经10年没有尝试过了。但是最近我听说了webhooks和websockets。

它们似乎都是做到这一点的一种方式,但我并没有真正理解其中的区别。

任何人都可以解释吗?

谢谢!

共有3个答案

羊渝
2023-03-14

在webhook中,我们有客户端和webhook api提供者。客户通常会做一次注册。在这个注册中,客户端定义了客户端感兴趣的事件以及webhook提供者发送更新的回调url。每当有事件更新时,webhook提供者将向url发送post请求和相关信息。

    < li>Webhooks主要用于服务器之间的通信。您的客户通过stripe和stripe api进行支付,让您的应用服务器知道支付已成功完成 < li>api提供程序必须处理失败情况下的重试策略。 < li >如果客户端公开一个endpoint以向必须可公开访问的webhook提供程序注册,则您必须保护此endpoint。 < li>webhook代表单个事件。事件的峰值会产生很多噪音,你的服务器必须能够处理这些噪音。如果你有一大堆来自不同服务的网页挂钩同时出现,会发生什么?这可能会导致用户体验下降,甚至全面超时。

在网页别名中,您有客户端和服务器。客户端向服务器发送握手 http 请求。如果服务器同意使用 websocket,则客户端和服务器将其通信升级到长期存在的 tcp 连接。通过建立此连接,客户端和服务器都可以双向通信。一个常见的用例是聊天应用程序。

  • Webockets主要用于服务器到浏览器的通信。
  • Websocket创建双向低延迟通信。由于客户端和服务器保持单个tcp连接,延迟非常低。最重要的是,客户端和服务器都可以使用相同的通道同时交换消息。
  • 因为客户端不需要发送多个请求,所以您减少了超文本传输协议请求的开销。
  • 客户端负责连接。如果连接死亡,他们必须处理重新连接。
  • 服务器必须应对可扩展性挑战。因为客户端本质上是建立一个连接
邰棋
2023-03-14

这里有一些额外的信息,用于在webhooks和webockets之间进行选择。

通过Websockets进行的服务器到服务器通信在新一代聊天机器人应用程序中变得流行起来。现在,许多聊天机器人在Websocket上运行,其主要优势是不需要内部私人机器人的面向公众的URL。在此环境中,以下是有关何时考虑使用 Webhook 与 Web 存根的一些准则。

网囊

  • 如果您的应用是浏览器应用,请使用WebSocket,因为您的应用无法接收WebHook
  • 如果您的应用程序是服务器应用程序,通过Internet从服务接收消息,并且您不想打开防火墙,请考虑WebSocket。一些公司要求在打开此类连接之前进行信息安全审查

Webhooks

  • 如果您的服务器应用程序应用程序需要进行许多订阅,要么准备好处理与您的服务器的开放webocket连接量(有关webocket连接的1M,请参阅本文),要么切换到webhooks。一些流行的聊天机器人已经从webockets转移到webhooks以提高可扩展性。
  • 如果您的服务器应用程序在(AWS Lambda、Google Cloud Functions等)上作为云功能运行,请使用webhooks,因为您的应用程序不会保持websocket连接打开。
  • 如果您的服务器应用程序在Heroku免费层上运行,请使用webhooks,因为您的Dyno将进入睡眠状态,并且必须每天睡眠6小时,除非您手动指示服务器睡眠。
郎成弘
2023-03-14

Webhook 用于服务器到服务器的通信。它们通过一台服务器告诉另一台服务器工作,当事情发生时,它希望将数据发送到某个URL。

本文讨论了webhooks在流行服务中的一些用途。该组织经常谈论在RESTful API的上下文中使用它们。

网页(通常)用于服务器与浏览器的通信。服务器托管 Websocket 服务器,客户端可以打开与该服务器的连接。这现在很受欢迎,主要是因为它比解决问题的旧方法(如长轮询/ COMET)更快,占用更少的资源。

可以使用WebSocket连接2台服务器,但这通常不是它们的用途。

尽管其中一种是(排他性的)服务器-服务器,另一种是(大部分)浏览器-服务器,但这些技术经常在相同的位置进行讨论,几乎就像它们正在解决相同的问题一样。如果你把链条抬得足够高,你会看到他们都解决了“实时”沟通的问题,但他们以非常不同的方式解决了这个问题的不同方面。

可以进行直接比较的一种情况是,如果您正在构建将由第三方服务器使用的API。在这种情况下,您可以提供网络钩子 API 或网络别名接口 API。两者都允许第三方快速获取更新:

  • 如果您选择Webhook,第三方仍然需要找到一种方法将您告诉他们的更改推送到他们的客户端浏览器
  • 如果您提供一个websocket API,第三方可以设置他们的站点,这样他们的每个用户都可以直接连接到您的websocket API,并且他们的服务器需要做的工作更少
 类似资料:
  • 本文向大家介绍深色网络和深色网络之间的区别,包括了深色网络和深色网络之间的区别的使用技巧和注意事项,需要的朋友参考一下 深网 深度网络是搜索引擎无法访问的网络内容。例如,银行信息,政府机密数据,云中存在的数据。只有经过正确的身份验证,才能访问深度Web上的数据。 暗网 Dark Web是网站所有者匿名的网站。Dark Web通常用于非法活动。暗网无法通过常规浏览器/搜索引擎访问。需要专用软件才能访

  • 本文向大家介绍存储区域网络(SAN)和网络附加存储(NAS)之间的区别,包括了存储区域网络(SAN)和网络附加存储(NAS)之间的区别的使用技巧和注意事项,需要的朋友参考一下 存储区域网络(SAN) 存储区域网络(SAN)用于使用光纤通道和交换机在服务器和存储设备之间传输数据。数据由磁盘块表示。SAN使用SCSI,SATA协议。以下是SAN的重要组件。 节点端口 电缆线 集线器,交换机,导向器作为

  • 我正在尝试用python制作一个电报回声机器人。我在heroku上托管我的python。 起初,我只是对python请求使用了电报本地API方法,然后我使用了一个python-telegram-bot库。 我能够让常规的getUpdate方法(使用长轮询——即heroku定期向您的电报机器人发出请求以获取更新)工作,但webhook不能。 我认为问题是heroku不会允许进入港口 有谁知道我该怎么

  • 我通过GitHub将我的电报机器人部署到Heroku(我使用Webhook),机器人正在运行,但由于某种原因,它没有通过Webhook接收消息。 代码如下: 文件:

  • 本文向大家介绍网络安全和信息安全之间的区别,包括了网络安全和信息安全之间的区别的使用技巧和注意事项,需要的朋友参考一下 网络安全和信息安全这两个术语互为同义词,两者之间的区别在于要保护的数据的性质。简而言之,网络安全负责保护网络,计算机和数据免受未经授权的电子访问,而信息安全负责保护信息资产,而不管信息是物理格式还是数字格式。 数据安全是关于保护数据的全部。但是数据和信息之间是有区别的。并非每个数

  • 问题内容: 我正在学习docker。我看到这两个词使我感到困惑。例如,这是一个docker-compose,它定义了两个服务和。 该文件定义了一个名为lognet的桥接网络,所有服务都将连接到该网络。据我了解,此操作使那些服务可以看到其他服务。那么在上述情况下,为什么应用程序服务仍需要链接到Redis服务。 谢谢 问题答案: 链接已被网络取代。Docker将它们描述为您应避免使用的旧功能。您可以安