我一直想做一个实时聊天。
几年前我在PHP + Ajax + Mysql中完成了这项工作并破坏了我的服务器。然后我尝试使用Flash +文本文件。我放弃了,并且在10年内没有尝试过。但最近我听说过webhooks和websockets。他们似乎都是一种方法,但我并没有真正掌握其中的差异。谁能解释一下?
答案 0 :(得分:146)
Webhooks用于服务器到服务器的通信。它们由一台服务器工作,告诉另一台服务器,当发生某些事情时,它希望将数据发送到某个URL。
This article讨论了流行服务中webhooks的一些用途。 This organization谈论了很多关于在RESTful API环境中使用它们的事情。
Websockets(通常)用于服务器到浏览器的通信。服务器托管websocket服务器,客户端可以打开与该服务器的连接。现在这种流行很受欢迎,主要是因为它比旧方法解决问题更快,资源占用更少,例如long-polling / COMET。
它是possible to connect 2 servers using websockets,但通常不是它们的用途。
即使其中一个是(专门)服务器 - 服务器,一个(主要是)浏览器 - 服务器,这些技术经常在同一个地方讨论,几乎就像他们解决相同的问题一样。如果你把链条抬得足够高,你就会发现它们都解决了“实时”的问题。沟通,但 他们以非常不同的方式解决了这个问题的不同方面 。
可能存在直接比较的一种情况是,您是否正在构建将由第三方服务器使用的API。在这种情况下,您可以提供 webhook API 或 websocket API 。两者都允许第三方快速获得更新:
答案 1 :(得分:4)
以下是在webhooks和websockets之间进行选择的一些其他信息。
通过websockets进行的服务器到服务器通信在新一代聊天机器人应用程序中变得越来越流行。现在,许多聊天机器人在websockets上运行,其主要优点是不需要内部私有机器人的公共URL。在这种环境中,以下是关于何时考虑使用webhooks和websockets的一些指导原则。
<强>的WebSockets 强>
<强>网络挂接强>