问题描述
在将消息发送到 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,Route = "{group}/add/{userId}")] HttpRequest req,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 函数上工作的点点滴滴,但这很困难。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)