Я разрабатываю онлайн-приложение для чата в asp.net. Я столкнулся с проблемой, так как предполагают, что два пользователя начинают общение. Когда первый пользователь пишет сообщение в ящике на основе javascript, тогда ajax-запрос отправляется на сервер. BUt, как я открываю второй пользовательский чат, чтобы он отвечал за первое сообщение пользователя?
Вы должны исследовать длинные опросы и сетевые сокеты. Это позволяет вашим клиентам получать более эффективные обновления. Вы можете опросить сервер каждые x секунд, но это будет расточительно для ресурсов.
Когда пользователь отправляет сообщение, на ваш сервер будет отправлен запрос AJAX, и вы, вероятно, сохраните опубликованное сообщение в базе данных. Вы также можете запросить ajax-запрос каждые X секунд, который проверяет наличие новых сообщений на сервере, и если они есть, он показывает их пользователю.
В качестве альтернативы вы можете использовать технологию Comet, через которую ваш сервер может "нажимать" ответ клиентам, чтобы уведомлять их о каждом новом сообщении.
Возможно, вам захочется взглянуть на SignalR, асинхронную сигнальную библиотеку для.NET, которая идеально подходит для чат-приложения:
https://github.com/SignalR/SignalR
Скотт Гензельман имеет хороший пример в своем блоге: