Использование Websockets в веб-приложении C #?
Вопрос
Я знаю, что это возможно использовать WebSockets внутри C #, используя приложение консоли, работающее на боковой стороне веб-приложения, но мне интересно, если это возможно использовать запросы на веб-приложении C # для создания WebSockets.
Я просматривал ASP.NET и IM начинаю думать, что он не будет возможно, если я не буду не использовать прямо вверх C # и создавать свой собственный HTTP-сервер, а затем использовать один и тот же объект сокета для генерации веб-розетки (аналогично способом у Node.js и Socket.io Работа).
Любые мысли о способах включения WebSockets на веб-приложении C # без нескольких серверов / проектов?
Решение
Можно разместить сервер Websockets в контексте ASP.NET. Тем не менее, вам нужно будет знать, что приложение ASP.NET может быть перезапущено, что означает, что сервер будет выключен и должен быть восстановлен вместе с приложением ASP.NET.
Хостинг приложения WebSockets в отдельной службе Windows обеспечит большую надежность на сервере сокетов, но затем потребует IPC для обмена данными между приложением ASP.NET и службой Windows.
Итак, есть компромисс для обсуждения. Это зависит от того, насколько чувствительным ваш клиентский код - это потери подключения и восстановление. Если это обработано достаточно, то хостинг в Asp.net будет в порядке.
Обратите внимание, что в то время как WebSockets являются новыми для HTML, концепция существует много лет с Flash и Java-апплетами. Особенно с помощью Flash он обычно используется для онлайн-игр и веб-чата.
Другие советы
Исходный код SuperWeBocket содержит веб-проект, который запускает сервер сокета на веб-сайте.http://superwebocket.codeplex.com/
Pokein 2.0 построил функцию Websocket, и это не требует никакой особой среды для работы. Детали доступны из здесь
Там будет Встроена в поддержку Websockets Client и Server в ASP.NET 4.5 и IIS8.
Видеть: http://www.asp.net/vnext/overview/aspnet/whats-new#_toc318097383.
Проверьте .net клиентские реализации от Каазинг. Отказ Использование этих клиентов вы можете подключиться к любому серверу WebSocket.