我一直想进行实时聊天。
几年前,我已经在PHP + Ajax + Mysql中完成了工作,并破坏了服务器。然后我尝试使用Flash +一个文本文件。我放弃了,十年没有尝试过。但是最近我听说了webhooks和websockets。他们俩似乎都是这样做的一种方式,但我不太了解其中的区别。有人可以解释吗?
Answers:
Webhook用于服务器到服务器的通信。它们通过一台服务器告诉另一台服务器,当发生某种情况时,它希望将数据发送到某个URL。
本文讨论了流行服务中Webhooks的某些用法。 该组织讨论了很多有关在RESTful API上下文中使用它们的问题。
Websocket(通常)用于服务器到浏览器的通信。该服务器托管一个websocket服务器,客户端可以打开与该服务器的连接。这种方法之所以受欢迎,主要是因为它比解决旧问题的较早方法(如长轮询/ COMET)更快且占用资源更少。
它可以连接使用WebSockets的2台服务器,但不是通常他们是用什么。
即使其中之一是(排他地)服务器服务器,而其中之一是(主要是)浏览器服务器,但是这些技术经常在相同的地方讨论,就像它们在解决相同的问题一样。如果您对链条的查找足够高,就会发现它们都解决了“实时”通信问题,但是它们以非常不同的方式解决了该问题的不同方面。
可能存在直接比较的一种情况是,如果您正在构建将由第三方服务器使用的API。在这种情况下,您可以提供一个webhook API或一个websocket API。两者都允许第三方快速获取更新:
这是在Webhooks和Websockets之间进行选择的一些其他信息。
通过websocket进行服务器到服务器的通信已随着新一代chatbot应用程序的普及而流行。现在,许多聊天机器人都在Websocket上运行,其主要优点是内部私有机器人不需要公开的URL。在这种环境下,以下是有关何时考虑使用Webhooks和Websockets的一些准则。
网络套接字
网络挂钩