根据Microsoft的tutorial,我在集线器中发送了一条消息。
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
我阅读了第三方聊天服务提供者的documentation,他们的API使用http post端点发送消息。
POST /rooms/:room_id/messages
这是另一个提供者的documentation,也是http发布端点。
[POST] /post_comment
我不明白他们为什么这样做,我想知道它的优缺点。
我的问题是:
使用http端点是更好的方法吗?
来自Microsoft教程的SignalalR是纯代码,但是第三方提供程序是具有SignalR功能的完整API端点。恕我直言,它们具有正常的API,但在实现中正在将Websocket与SignalR一起用于实时消息传递。
它们有两个部分。首先是服务器端API,其次是客户端。Server API允许您对更改数据进行任何操作(例如,创建房间..),并且Client负责侦听更改和更新UI。
他们已连接到集线器,用于创建隐藏在其SDK中的websocket。只需看QUISCUS Webhooks或EventHandlers。您可以编写自己的API,也可以使用SignalR。
如果您有分开的东西(服务器POST端点,客户端通过websocket监听更改),这是简单的维护。