0

将消息发送到 signalrhub 中的组时,我没有收到任何组消息。堆:

  • 使用 axios 库的 JS 客户端
  • 天蓝色的功能
  • 信号服务

基于这篇文章和项目: https ://docs.microsoft.com/en-us/azure/azure-signalr/signalr-quickstart-azure-functions-csharp

添加此功能以尝试加入群组并调用 sendmessage 以发送到 azure 功能:

      joinGroup(data.username, 'melmack');

      function joinGroup(userId, group) {
          return axios.post(`${apiBaseUrl}/api/${group}/add/${userId}`, {})
              .then(resp => { if (resp.status == 200) { confirm("Added Successfully.") } });
      }

    function sendMessage(sender, messageText) {
      return axios.post(`${apiBaseUrl}/api/melmack/send`, {
        sender: sender,
        text: messageText
      }).then(resp => resp.data);
    }

组函数在这里定义:

       [FunctionName("SendMessage")]
    public static Task SendMessage(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "{group}/send")] object message,
    string group,
    [SignalR(HubName = "chat")] IAsyncCollector<SignalRMessage> signalRMessages)
    {
        return signalRMessages.AddAsync(
            new SignalRMessage
            {
                GroupName = group,
                Target = "newMessage",
                Arguments = new[] { message }
            });
    }

    [FunctionName("joinGroup")]
    public static Task JoinGroup(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "{group}/add/{userId}")] HttpRequest req,
    string group,
    string userId,
    [SignalR(HubName = "chat")] IAsyncCollector<SignalRGroupAction> signalRGroupActions)
    {
        return signalRGroupActions.AddAsync(
            new SignalRGroupAction
            { 
                UserId = userId,
                GroupName = group,
                Action = GroupAction.Add
            });
    }

一切似乎都工作正常,直到我尝试调用“SendMessage”并将 GroupName 设置为该值。我注释掉 SignalRMessage 对象中的 GroupName 属性,它工作正常并加载到我的所有客户端。

想要一些故障排除帮助或指向定义如何使用 azure 函数、SignalR 服务和客户端的更简单文章的链接。我的最终目标是为我的应用程序实现一个 xamarin 表单客户端库。我已经在网上搜索了信号器服务如何在 azure 函数上工作的点点滴滴,这很困难。

4

0 回答 0