Как узнать, что другой пользователь сейчас пишет сообщение на веб-сайте чата? - PullRequest
0 голосов
/ 01 августа 2011

Я создаю систему чата на веб-сайте ASP.Net MVC и хочу, чтобы пользователь увидел, пишет ли другой пользователь чата сообщение.

То же, что и в gtalk или msn,когда другой пользователь начинает писать, он говорит: «userA пишет ....», тогда он скрывает это сообщение, когда пользователь останавливается.

Какова концепция этой функции для реализации на веб-сайте, и чтоЯ должен знать, чтобы построить это правильно?

Ответы [ 3 ]

1 голос
/ 01 августа 2011

Все это делается через AJAX

Пользователь1 отправляет значение writing=true на сервер, как только начинается запись, и writing=false при отправке сообщения.

Пользователь2 опрашивает сервер каждые x секунд, чтобы увидеть if(writing){display "User1 is writing a message"}

Это, очевидно, два пути, так что User1 и User2 оба выдвигают и извлекают логический writing с сервера.

Я бы предложил использовать jQuery и JSON для этого процесса.

0 голосов
/ 01 августа 2011

На стороне клиента, счетчик таймера равен 500 мс, а переменная sentState установлена ​​в значение false.

Когда клиент что-то набирает, сбрасывает этот таймер, если sendState отправляет запрос AJAX на серверуказывая, что клиент печатает.Наконец, установите для sentState значение true.

Если таймер достигает 500 мс, отправьте на сервер запрос AJAX, указывающий, что клиент больше не печатает, и установите для sentState значение false.

0 голосов
/ 01 августа 2011

Ищите «на изменения» (или эквивалент) для вашего текста редактирования. Когда это произойдет, запустите таймер и отправьте ajax-сообщение на сервер (ы) чата, чтобы уведомить их. Когда текст отправлен или время истекло, удалите сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...