3

SignalR ライブラリを使用してチャット ルームを作成していますが、たとえば、クライアント 1 がクライアント 2 と話している場合、ユーザー アクションを追跡したいと考えています。メッセージはとにかくこれを行うことですか?

4

1 に答える 1

7

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);
}
于 2013-02-28T17:57:48.260 に答える