如何在 SignalR 中仅向两个用户发送消息

问题描述 投票:0回答:1

我希望当我向彼此发送消息时,两个人会像 signalR 组一样收到该消息,但我不使用组,我在没有组的情况下做这件事

请任何人都可以告诉如何做到这一点

asp.net-core asp.net-core-mvc signalr signalr-hub signalr.client
1个回答
3
投票

你可以试试

public async Task SendMessage(string user, string message)
{
    await Clients.Others.SendAsync("ReceiveMessage", user, message);
}

我尝试了这个文档中的代码,只是修改了hub中的代码

结果:

向特定用户发送消息,您可以查看此文档

更新

我在chat.js中添加代码:

document.getElementById("sendButton1").addEventListener("click", function (event) {
    var user = document.getElementById("userInput").value;
    var message = document.getElementById("messageInput").value;
    connection.invoke("SendMessage1", user, message).catch(function (err) {
        return console.error(err.toString());
    });
    event.preventDefault();
});

在页面中添加另一个按钮:

<div class="col-6">
    <input type="button" id="sendButton1" value="Send Message" />
</div>

在 Hub 中添加此代码:

public async Task SendMessage1(string user, string message)
{
    var a = Context.UserIdentifier;
    await Clients.All.SendAsync("ReceiveMessage", user, message);
}

结果:

© www.soinside.com 2019 - 2024. All rights reserved.