2015-06-02 1 views
4

Почему SignalR делает разные подключения в браузере несколькими вкладками для одного и того же входа в систему. Есть ли способ сделать одно соединение для всех вкладок, открытых в том же браузере. Из соединения я подразумеваю идентификатор соединения пользователя в SignalR.Различное соединение в нескольких вкладках браузера

+0

Что еще вы ожидаете? Несколько физических подключений используют один и тот же идентификатор соединения? –

+1

Я хочу тот же идентификатор соединения в нескольких вкладках одного браузера. Подобно сеансу пользователя, он остается таким же на нескольких вкладках в одном браузере. – Diana

+0

Невозможно. Зачем тебе это ? –

ответ

1

Поскольку разные вкладки одного и того же браузера представляют собой разные документы «процессы» - каждая вкладка в некотором смысле представляет собой различный «экземпляр» клиентского приложения. Невозможно напрямую использовать объекты JavaScript между ними (и именно поэтому SignalR открывает новое соединение на каждой вкладке). Чтобы обмениваться данными \ общаться между разными экземплярами, вы можете использовать, например, механизм HTML5 localStorage

Так что, если вы хотите разделить одно соединение SignalR между вкладками, способ реализовать это самостоятельно, управляя соединением только на одной вкладке и позволяя communication between tabs, чтобы каждая вкладка могла отправлять \ получать сообщения с сервера. Вы можете использовать или вдохновляться this cool project, который делает именно это.

Это также разрешает ограничение на максимальное количество одновременных подключений к одному серверу problem.

+0

Почему мы не можем поделиться? Возможно, мы можем разделить объекты javascript на разных вкладках. Если вы хотите, чтобы процесс просто ссылался на приведенную ниже ссылку, откройте несколько вкладок и выберите любой ответ одновременно с изменением каждой информации вкладки, [http://quizworld99.blogspot.in/2015/10/mental-ability -test-1.html] (http://quizworld99.blogspot.in/2015/10/mental-ability-test-1.html) –

+0

1. Я пробовал прямо сейчас в Chrome и нет, отвечая на одной вкладке, t влияет на другую вкладку. 2. Даже если это сработало, как вы описываете, это не означает, что вы можете делиться экземплярами JavaScript между вкладками. Если вам нужно обмениваться данными \ общаться между вкладками \ окна браузера, вам нужно использовать что-то вроде HTML5 localStorage mechanim ... –

+0

спасибо за ссылку github, потрясающий проект. Я имею в виду это https://github.com/slimjack/IWC-SignalR – Alex