将消息发送到 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 函数上工作的点点滴滴,这很困难。