SignalR实时聊天,我应该在集线器还是http api中发送消息?

问题描述 投票:0回答:1

根据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端点是更好的方法吗?

signalr signalr-hub asp.net-core-signalr
1个回答
0
投票

来自Microsoft教程的SignalalR是纯代码,但是第三方提供程序是具有SignalR功能的完整API端点。恕我直言,它们具有正常的API,但在实现中正在将Websocket与SignalR一起用于实时消息传递。

它们有两个部分。首先是服务器端API,其次是客户端。Server API允许您对更改数据进行任何操作(例如,创建房间..),并且Client负责侦听更改和更新UI。

他们已连接到集线器,用于创建隐藏在其SDK中的websocket。只需看QUISCUS Webhooks或EventHandlers。您可以编写自己的API,也可以使用SignalR。

如果您有分开的东西(服务器POST端点,客户端通过websocket监听更改),这是简单的维护。

© www.soinside.com 2019 - 2024. All rights reserved.