Прочитав этот пост, я решил написать собственное приложение для чата.
В отличие от вышеприведенного сообщения, мое приложение позволяет проводить больше опросов, например, когда пользователь нажимает любую клавишу (чтобы сообщить другой, что пользователь1 что-то пишет) и, очевидно, когда пользователь отправляет сообщение.
Это вызывает некоторые проблемы: часто уведомление ни одного читается правильно, и отправленное сообщение не всегда читается с другой стороны.
Было бы замечательно, если бы был способ отправить и получить различные типы уведомлений (сообщение, предупреждение о новом письме, новый пользователь и т.д.).
Как я могу это решить?
Я рад сообщить вам, что мое приложение для чата работает сейчас.
Проблема заключалась в двух вызовах службы wcf в одном и том же обработчике событий javascript (кнопка отправки сообщения, где я не уведомлял новое сообщение и предупреждение, такое как "пользователь ничего не пишет", да, мне нужно было сбросить предыдущее предупреждение ("пользователь пишет сообщение..").
Теперь я могу отправлять и получать много уведомлений, и все работает нормально. Я тестировал его с 10 страницами чата.
Конечно, я знаю, что могу добиться большей функциональности и стабильности, используя фреймворк, который вы мне предложили, но я счастлив найти относительное простое, настраиваемое и хорошее решение для моей цели.
Сигнал R является решением вашей проблемы. Я понимаю, что вы хотите разработать свое собственное решение и что интрига может быть заманчивой, но, пожалуйста, подумайте о том, как смотреть в SignalR - быть в состоянии справиться и манипулировать SignalR будет платить дивиденды и позволит вам решать подобные проблемы гораздо легче - отличный инструмент для добавления в ваш арсенал разработки.
На самом деле непременно продолжите разработку своего решения, но однажды передайте SignalR для чего-то другого или другого проекта, на который действительно стоит посмотреть как де-факто метод достижения такого типа взаимодействия с клиентским сервером внутри.net. Его можно найти на NuGet, используя ссылку ниже, так что всего за несколько кликов!