Локальная разработка с помощью службы Azure SignalR и функций Azure.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Локальная разработка с помощью службы Azure SignalR и функций Azure.

Сообщение Anonymous »

Я использую службы Azure SignalR, которые работают в облаке, и запускаю приложение-функцию Azure, которое запускается локально на моем ноутбуке на локальном хосте. У меня есть следующий хаб:

Код: Выделить всё

public class LeaderboardHub : ServerlessHub
{
[FunctionName("negotiate")]
public async Task Negotiate([HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequest req) =>
Negotiate(req.Headers["x-ms-signalr-user-id"]);

[FunctionName(nameof(OnConnected))]
public async Task OnConnected([SignalRTrigger]InvocationContext invocationContext, ILogger logger)
{
logger.LogInformation($"{invocationContext.ConnectionId} has connected");
}
}
Я подключаюсь к хабу следующим образом:

Код: Выделить всё

 const apiBaseUrl = window.location.origin;
const connection = new signalR.HubConnectionBuilder()
.withUrl(apiBaseUrl + '/api')
.configureLogging(signalR.LogLevel.Information)
.build();

connection.start()
.catch(console.error);
Когда я запускаю это, я могу установить точку останова в Negotiate() и увидеть установленное соединение. Когда я отправляю сообщения в свой хаб, они отображаются на клиенте. Однако я никогда не видел вызова метода OnConnected. Аналогично, если я создаю новые методы SignalRTrigger и вызываю их в Javascript, они никогда не будут вызваны.
Моя теория: Надеюсь, я Я ошибаюсь, но я в некоторой степени предполагаю, что это связано с тем, что я запускаю свое приложение на своем ноутбуке под локальным хостом, и службы Azure SignalR Services не имеют возможности «переслать» сообщение мне, поскольку Azure не может подключиться к моему ноутбук. Я не пробовал развертывать свое приложение-функцию в Azure, чтобы запустить его там, но предполагаю, что если бы я запустил его в Azure, было бы двустороннее соединение.
  • Это правильное предположение? То есть является ли это ограничением служб Azure SignalR?
  • Есть ли какой-нибудь способ обойти это? Например, запускаете какую-нибудь локальную прокси-службу или эмулятор AzureR SignalR? Как люди обычно занимаются разработкой с помощью SignalR, не развертывая все небольшие изменения в Azure?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/739 ... -functions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»