Комментарии 26
Русская студия, «Универсальный обработчик». Ох
За пример, спасибо.
А теперь играем в ребус — разгадай, как это выглядит в EN студии
RU вариант до сих пор выбивает из колеи
А теперь играем в ребус — разгадай, как это выглядит в EN студии
RU вариант до сих пор выбивает из колеи
Вам надо внимательно посмотреть на SignalR
www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx
эта библиотека скоро станет частью ASP.NET
www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx
эта библиотека скоро станет частью ASP.NET
Большое спасибо. Обязательно посмотрю.
Да, я согласен, более того, чат — это самый распространенный пример под SignalR, его даже на девконе показывали.
Ну моя цель была не написать свой чат, а показать, как можно работать с Web Socket средствами ASP.NET MVC 4. А SignalR выглядит очень интересно, обязательно посмотрю его поподробнее.
А можно источник информации про то, что оно станет частью asp.net? Поисковики что-то молчат на эту тему.
Еще бы хорошо сравнить нагрузку на клиент и на сервер для:
1) Web Socket
2) простых запросов, раз в N секунд.
1) Web Socket
2) простых запросов, раз в N секунд.
Тоже очень интересует этот вопрос. Особенно если у нас приложение развернуто на клиентской винде.
Простите что вмешиваюсь, но на ASP я никогда не писал, но могу смело сказать за Python.
При каждом запросе идет разбор хэдеров, а значит будут затраты на их аналаиз. Если python подключен как cgi, то в добавок каждый модуль будет всегда подключатся и исполнятся заново, скорее всего ASP так не делает, по этому такой вариант стоит отбросить. Если использовать много поточный сервер, то остается только разбор HTTP хэдеров, а это порядка 10-20 строк.
В случае с ws, то хэдеры разбираются ровно один раз, при подключении. Но при каждом запросе, к примеру с Хрома, будет идти дешифровка сообщения, что в свою очередь тоже дает нагрузку, а я скажу что она будет повыше, чем разбор 20 HTTP заголовков.
Но если воспользоваться XMLSocket встроенными во Flash, то можно и отлично выиграть, он ничего не шифрует, а значит заниматься дешифровкой не надо.
При каждом запросе идет разбор хэдеров, а значит будут затраты на их аналаиз. Если python подключен как cgi, то в добавок каждый модуль будет всегда подключатся и исполнятся заново, скорее всего ASP так не делает, по этому такой вариант стоит отбросить. Если использовать много поточный сервер, то остается только разбор HTTP хэдеров, а это порядка 10-20 строк.
В случае с ws, то хэдеры разбираются ровно один раз, при подключении. Но при каждом запросе, к примеру с Хрома, будет идти дешифровка сообщения, что в свою очередь тоже дает нагрузку, а я скажу что она будет повыше, чем разбор 20 HTTP заголовков.
Но если воспользоваться XMLSocket встроенными во Flash, то можно и отлично выиграть, он ничего не шифрует, а значит заниматься дешифровкой не надо.
Такие рассуждения, конечно, интересны, но хотелось бы услышать более конкретные результаты типа «Я написал чат сначала на повторяющихся запросах раз в секунду от каждого клиента, и у меня он выдерживал N одновременных пользователей. Потом я написал тоже самое на WebSocket и получил M одновременных пользователей.»
Похоже, есть проблема потокобезопасности на циклах обхода клиентов.
Нужно использовать тот же Locker, но с методом EnterReadLock или создавать копию для чтения.
И еще вы оставляете в коллекции отключенных клиентов.
for (int i = 0; i < Clients.Count; i++)
{
...
}
Нужно использовать тот же Locker, но с методом EnterReadLock или создавать копию для чтения.
И еще вы оставляете в коллекции отключенных клиентов.
Начиная с какой версии IIS доступны WebSockets?
У меня не распознается веб сокет реквест от последнего хрома.
if (context.IsWebSocketRequest) выдает false.
Кто нибудь с таким сталкивался?
if (context.IsWebSocketRequest) выдает false.
Кто нибудь с таким сталкивался?
Ссылка на скачку файла проекта не работает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Делаем чат на ASP.NET с помощью Web Socket