我正在使用strongly typed hubs来避免传递“魔术字符串”。
但是,在从客户端进行侦听时似乎没有遵守。
让我们从代码开始,然后进入示例。
代码:
public interface IChatClient
{
Task ReceiveMessage(string user, string message);
}
public class StronglyTypedChatHub : Hub<IChatClient>, IChatClient
{
[HubMethodName("chat.sendmessage")]
public async Task SendMessage(string user, string message)
{
await Clients.All.ReceiveMessage(user, message);
}
}
示例1 :客户端到SignalR
如果要从客户端执行该方法,则必须发送connection.invoke("chat.sendmessage", ...)
。这按我预期的那样工作。
示例2 :向客户发送SignalR
如果我想听消息,则必须在connection.on("sendmessage", data => { ... });
上听。
对于示例2,我想在HubMethodName
:connection.on("chat.sendmessage", data => { ... });
中听相同的名字。
有什么想法吗?