查看docs的SignalR绑定以将消息发送给指定的用户,您就这样在消息上包含了UserId
属性-
[FunctionName("SendMessage")]
public static Task SendMessage(
[HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message,
[SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{
return signalRMessages.AddAsync(
new SignalRMessage
{
// the message will only be sent to these user IDs
UserId = "userId1",
Target = "newMessage",
Arguments = new [] { message }
});
}
此示例直接取自文档,但注释表明您会提示多个用户ID,即使该属性是字符串而不是数组也是如此。
您如何指定多个用户? (例如,如果他们在一起是在私人聊天频道中),或者这是注释措辞中的错误,您需要按用户发送消息吗?
对于其他版本的SignalR,我会将它们放在一个组中,但是对于函数而言,此绑定不存在。
答案 0 :(得分:1)
不幸的是,就像文档所说的那样,现在使用Azure函数绑定,我们只能将消息发送给一个用户或所有客户端。
请参见the code of current extension SDK Microsoft.Azure.WebJobs.Extensions.SignalRService
v1.0.0-preview1-10002。
它显示扩展名只有两种方法SendToAll和SendToUser。
Task SendToAll(string hubName, SignalRData data);
Task SendToUser(string hubName, string userId, SignalRData data);
该评论使您感到困惑,实际上是因为old sample,作者忘记对其进行修改。
好消息是,对群组操作的支持为under progress。
答案 1 :(得分:1)
在latest release中引入了组操作。
现在您可以:
factors=_repository.AsQueryable.Where(p=>p.FactorStateBase is PaidFactorState && p.PayDate > = yourdate)
中的is
向群组发送消息GroupName
输出添加/删除组中的用户