Когда SignalR сделал 8-10 подключений одновременно, чат не работает

Я занимаюсь разработкой живого чата с использованием SignalR. Это отличная библиотека. Но я справился с одной проблемой, которую не могу решить какое-то время. Таким образом, проблема в том, когда signalR установил 8-10 подключений за один раз, живой чат больше не работает. Может быть, это ч / б я все запускаю на локальной машине?

Я думал, может быть, я где-то ошибся. Итак, я нашел самый простой чат. Вы можете скачать егоВот. I opened it in 10 windows and it dont work anymore. Is that performance issue of signalR or programmers mistake? How can i make it work faster?

Также я нашелJabbR чат , И это имеетживое демо  и это работает для многих людей. Они не делают ничего особенного, и это работает очень.

Может кто-нибудь помочь с этим вопросом?

Большое спасибо за любую помощь, Дима.

 Ramesh03 мая 2012 г., 12:57
Что вы подразумеваете под живым чатом, который больше не работает? Вы получаете исключения или какие-либо ошибки вошли? Каково здоровье вашего приложения?
 F0rc0sigan03 мая 2012 г., 12:54
Запущенный в версии 2011, который всегда использует IIS Express. Та же проблема. Я открываю 10 вкладок не более. Как 10 вкладок могут достичь 5000 одновременных подключений, которые установлены по умолчанию в ASP.NET. Может быть, я могу попробовать что-нибудь еще?
 Ramesh03 мая 2012 г., 11:47
Проблема может заключаться в том, что достигнуто максимальное количество одновременных соединений. Попробуйте использовать iis express
 Ramesh03 мая 2012 г., 08:48
На каком веб-сервере вы тестируете?
 F0rc0sigan03 мая 2012 г., 11:32
Я разрабатываю приложение .net, поэтому я использую сервер разработки ASP.NET.

Ответы на вопрос(2)

Решение Вопроса

IIS/Cassini on Windows 7 has a default limit of 10 concurrent connections. Try running tests on Windows Server and see if it behaves the same. Try opening the connections in separate browser windows and/or separate browsers and/or machines, not tabs. I noticed that in 0.4 things can mess up when using tabs.
 25 апр. 2017 г., 08:21
Когда вы не используете веб-сокеты, существует ограничение в количестве одновременных подключений, которые вы можете открыть для конкретного концентратора.
 25 апр. 2017 г., 08:07
@ davidfowl, у меня эта проблема, только когда я открываю более одной вкладки, но внутри одной вкладки она работала довольно хорошо. Можете ли вы дать мне некоторую информацию об этом, спасибо
 07 мая 2012 г., 16:27
Вы также можете использовать IIS Express на Windows 7. У него нет этих ограничений.
 25 апр. 2017 г., 10:45
я включил веб-сокеты для IIS, а также увеличил количество параллельных запросов к процессору внутри файла aspnet.Config, а затем столкнулся с той же проблемой. Когда я проверяю Fiddler, запрос не достигает сервера, он замораживается (не получая никакого ответа). URL выглядит такlocalhost/Microcare/signalr/start?transport=webSockets .....

Перепишите идентификатор соединения, чтобы на каждой вкладке вы имели одинаковый идентификатор подключения:

 public class MyConnectionFactory : IConnectionIdGenerator
    {
        public string GenerateConnectionId(IRequest request)
        {
            return MyUserManager.Instance.CurrentUserID.ToString();
        }
    }

Добавьте к global.asax:

GlobalHost.DependencyResolver.Register(typeof(IConnectionIdGenerator), () => new MyConnectionFactory());

И мне удалось открыть как вкладки маха, как я мог. И все вкладки получают уведомления.

Надеюсь, это помогло.

 23 окт. 2012 г., 17:45
Дело в том, что он работал и под IE9, даже под IIS7. И это довольно странно ... Обычно я пытаюсь выяснить, почему что-то не работает, но сейчас я пытаюсь выяснить, почему это работает ...)
 23 окт. 2012 г., 12:14
Тогда это означает, что мы не можем использовать SignalR, если пользователь открывает несколько вкладок? .. Я использую IIS8, и проблема также возникает, если мы используем уникальный connectionid. Это грустно. Может быть, мы можем что-то сделать с помощью ServicePointManager, но я пока не понял этого.
 22 окт. 2012 г., 14:29
Я проверял это на Chrome и FF, открытых под одним и тем же ConnectionId, с несколькими открытыми вкладками, и каждая вкладка получает уведомления от signalR. Если бы вы могли объяснить, когда я должен ожидать проблемы? "потому что я собираюсь остаться с этим обходным путем", потому что он работает на данный момент ... Спасибо.
 22 окт. 2012 г., 14:17
Я так не думаю. Идентификаторы соединения должны быть уникальными для каждого соединения, или все ломается:stackoverflow.com/questions/11522090/…
 22 окт. 2012 г., 17:25
В моих тестах использование одного и того же идентификатора соединения для нескольких соединений (например, при открытии нескольких вкладок или окон браузера) приводит к немедленному отключению. Это может быть побочным эффектом транспорта Server-Sent-Events, используемого в Chrome и FF, если это не произойдет с вами. Как упоминает dfowler (создатель SignalR) в вопросе, который я связал, идентификаторы соединений должны быть уникальными. Это также причина, почему он удалилIConnectionIdGenerator из будущей версии SignalR, поэтому создание дублирующих идентификаторов невозможно.

Ваш ответ на вопрос