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

用于实时获取消息的REST API聊天endpoint

芮建茗
2023-03-14

我有一个由Express+MongoDB驱动的REST API服务器。有两个endpoint具有不同的资源。其中之一就是聊天API。我已经有了几个基本endpoint,比如:

  • 发布http://api.example.com/v1/chat-创建chat
  • 发布http://api.example.com/v1/chat/:id/message-将消息发送到现有聊天
  • 获取http://api.example.com/v1/chat/:id/messages-获取指定聊天中的消息

我在想网络插座。例如,是否可以提供像/chat/:id/subscribe这样的endpoint,它将代理套接字的服务器并在客户端连接到它?

有没有一些这样的API设计的好例子,我可以从中获得灵感,或者你可以给我一些建议?谢了!

共有1个答案

左丘峰
2023-03-14

io是您正在寻找的软件包。

它的文档中的名称空间部分是一个很好的解决方案,因为名称空间可以受到授权保护。它表示连接的套接字池。

以下是我的做法:

POST http://api.example.com/v1/chat
POST http://api.example.com/v1/chat/:id/message

在客户机中,您必须再次使用socket.io来监听命名空间中的消息。

可伸缩性更新:

下面是stackoverflow回答的关于实现可伸缩聊天服务器的一个很好的问题:实现可伸缩聊天服务器的策略

正如您在本文中看到的,mongodb可能不是存储消息的最佳解决方案。

 类似资料:
  • 控制台-频道-聊天-获取消息 接口URL {youke-url}/console/Index.php?c=live&a=getComment&timestamp=1607677497&access_key=abc&sign=97d791101db8600e162935d43cc63f0e3510cb98 请求方式 POST Content-Type form-data 请求Query参数 参数 示

  • 现在我想在聊天中向用户显示一条消息在那个特定的地方被删除了(比如在whatsapp中)。但只提供未删除的消息。 有没有办法从Twilio那里得到被删除的消息? 如果不可能,我正在考虑更新消息时,用户想删除(只删除消息正文)。请建议这是否是最好的解决方案。

  • 我是一个网络开发的初学者。最近,我一直在开发一个完全基于PHP和JS/jQuery的实时聊天网站(我没有使用任何框架)。目前,我的设置只是简单的AJAX轮询,这显然没有我希望的那么好。我的数据库是MYSQL数据库。 我读过关于WebSocket的书,我最初的新计划是用Socket创建一个NodeJS服务器。io将处理消息(如何集成nodeJS Socket.io和PHP?),我考虑将这些消息存储在

  • 下面是我的实现方式: 我如何以它在其他聊天应用程序(如whatsapp等)中的工作方式实现通知??

  • 我正在开发一个使用firebase实时数据库的聊天应用程序。我能够交换消息,但我希望有一个消息警报通知新消息。发送通知使用firebase控制台是工作的,但现在我想自动化它没有firebase控制台。 安卓客户端之间的推送通知需要创建自己的app服务器吗?或者有没有另外一种方法来实现这一点,而不是创建一个服务器? 谢谢

  • 当我在PHP中使用file\u get\u contents函数来更新我的电报机器人时,我知道如何获取第一个聊天ID或文本,但这个页面不仅仅适用于一个用户 它获取在我的机器人中键入的第一个用户聊天ID。当我对他的短信做出反应时,我会将我的消息发送给使用我的机器人的最新用户。。。我该怎么做?