c# - 使用 SignalR 时跟踪用户操作

标签 c# javascript signalr

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

最佳答案

您可以处理 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);
}

关于c# - 使用 SignalR 时跟踪用户操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137523/

相关文章:

c# - 读取富文本框中的特定行

php - facebook/digg 如何获取网页的所有图像?

javascript - 如何从 HTML 中提取 "parent with two child' s"模式

asp.net-mvc - SignalR 和 foreverFrame 在 IE 9 中挂起

asp.net-mvc - 启动连接失败: Error: Unable to initialize any of the available transports

c# - 抛出异常 : 'System.Exception' in Alea. dll“i32 不是结构类型

c# - 在 MonoGame 中绘制绘图的子图像

c# - 在 SQL 中实现 C# 迁移代码

javascript - 如何内联解构器

c# - C# 桌面应用程序、移动应用程序和 SQL 服务器之间的实时更新