SignalR чат в реальном времени, я должен отправить сообщение в концентраторе или HTTP API? - PullRequest
0 голосов
/ 26 сентября 2019

Согласно руководству Microsoft , я отправляю сообщение в хабе.

public class ChatHub : Hub
{
    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

Я прочитал документацию стороннего поставщика услуг чата,Их API использует конечную точку поста http для отправки сообщения.

POST /rooms/:room_id/messages

Это документация другого поставщика , также конечная точка поста http.

[POST] /post_comment

IНе понимаю, почему они это делают, я хочу знать преимущества и недостатки этого.

Мой вопрос:

Является ли использование конечной точки http лучшим способом?

1 Ответ

0 голосов
/ 26 сентября 2019

SignalR из учебника Microsoft - это чистый код, но сторонние провайдеры являются полными конечными точками API с функцией SignalR.ИМХО, у них нормальный API, но в реализации они используют websocket с SignalR для обмена сообщениями в реальном времени.

Они состоят из двух частей.Первый - это API на стороне сервера, а второй - Клиент.Серверный API позволяет вам выполнять любые действия с данными об изменениях (например, создавать комнату ..), а клиент отвечает за прослушивание изменений и обновление пользовательского интерфейса.

У них есть соединение с концентратором для создания веб-сокета, скрытого в их SDK.Просто посмотрите QUISCUS Webhooks или EventHandlers .Вы можете написать свой собственный API, а также использовать SignalR.

Его простое сопровождение, если вы разделили вещи (конечная точка POST сервера, клиент прослушивает изменения через веб-сокет).

...