Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / JS (WinSocket) / Local IIS 8 / ASP.Net / 6 сообщений из 6, страница 1 из 1
28.02.2016, 04:28
    #39180706
RubinDm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JS (WinSocket) / Local IIS 8 / ASP.Net
Недавно наткнулся на статейку о том, как можно организовать взаимодействие в направлениях "туда-сюда" между броузером (JS) и сервером (ASP.Net). Облизнулся, скопипастил, запустил - работает! Стал копать глубже и напоролся на интересный эффект: реализованный таким образом чат работает лишь до тех пор, пока количество открытых клиентов чата (броузеров) не превышает 3 (три) штуки. Причем не важно, какие именно браузеры открыты - хромы, мозилы, експлорёры или рёбра - пофигу... всего их вместе взятых не должно быть открыто более трех. В случае открытия очередного четверного окна (из любого браузера) все запросы к ресурсам под корнем localhost (включая сам локалхост) из окна 4 тупо висят. Работоспособными остаются лишь те окна браузеров, которые были открыты в числе первых трех, они могут легко достучаться до любых ресурсов. Если из первых трех окон закрыть любое (например второе), то четверное окно, которое ранее висело, мгновенно выходит из комы. Опытным путем было установлено, что броузеры перестают получать ответы от iis только при условии уже поднятых websocket'ов в количестве не менее трех штук в любых броузерах и комбинациях.
Далее я опытным путем нарыл настройку в iis - количество рабочих процессов на пул приложения. Для интересующего меня пула там было установлено 1 (один) процесс. Я поднял значение этого параметра до двух и, получил все тоже самое, то теперь проблемы отложились с четвертого окна на седьмое. Из чего я делаю вывод, что на один рабочий процесс может быть поднято не более трех сокетов, а на практике не более двух сокетов при единственном процессе в IIS'е, иначе встанут все прочие запросы от броузеров.
Вопрос: чо с этим можно сделать?
...
Рейтинг: 0 / 0
28.02.2016, 04:35
    #39180707
RubinDm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JS (WinSocket) / Local IIS 8 / ASP.Net
и еще немаловажный с практической точки зрения факт: количество поднятых экземпляров одного и того же asp.net-приложения линейно (1в1) зависит от количества рабочих процессов IIS'а, что наверное не удивительно. Это создает нереальные грабли в виде изоляции состояний поднятых приложений. Для чата это вообще ахтунг - по факту получается множество чатов по единому url'у, каждый чат имеет свое состояние, и в каждом чате не более трех клиентов.
...
Рейтинг: 0 / 0
28.02.2016, 15:47
    #39180817
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JS (WinSocket) / Local IIS 8 / ASP.Net
...
Рейтинг: 0 / 0
28.02.2016, 15:48
    #39180819
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JS (WinSocket) / Local IIS 8 / ASP.Net
RubinDm,

ещё

http://www.asp.net/signalr/overview/performance/scaleout-in-signalr

кластеры наше фсё
...
Рейтинг: 0 / 0
28.02.2016, 15:50
    #39180821
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JS (WinSocket) / Local IIS 8 / ASP.Net
RubinDm,

что делать с ограничениями на количество подключений браузера

https://www.future-processing.pl/blog/signalr-handling-browser-connection-limits/
...
Рейтинг: 0 / 0
29.02.2016, 14:50
    #39181475
RubinDm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JS (WinSocket) / Local IIS 8 / ASP.Net
hVostt, спасибо.. очень толковая статья.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / JS (WinSocket) / Local IIS 8 / ASP.Net / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]