在使用SignalR时跟踪用户动作

本文关键字:用户 跟踪 SignalR | 更新日期: 2023-09-27 18:01:38

我正在使用SignalR库创建聊天室,但现在我想跟踪用户操作,例如,如果客户端1正在与客户端2交谈,我想显示(…)告诉客户端2,客户端1正在写一条消息是他们这样做的方式吗?

在使用SignalR时跟踪用户动作

您可以处理KeyPress事件,并且每隔一段时间(例如每10个字符左右),您可以调用服务器端消息通知"UserTyping"操作。

客户端

<textbox id="message"></textbox>
<span id="userTyping"></span>
var keyPressCount = 0;
$("#message").on("keypress", function () {
    // Throttle the server call with some logic
    // Don't want to call the server on every keypress
    if (keyPressCount++ % 10 == 0) {
        chatHub.server.userTyping("myChatGroup");
    }
});
chatHub.client.OtherUserIsTyping = function (userName) {
    $("#userTyping").html(userName + " is typing...");
};
服务器端

public void UserTyping(groupName)
{
    var userName = "Get current user's name";
    Clients.OthersInGroup(groupName).OtherUserIsTyping(userName);
}