2016-02-02 2 views
0

Я пытаюсь реализовать некоторый код WebSocket в нашем Wicket. Я чего-то не понимаю. Как создать дополнительные подключения на одной странице?Дополнительные соединения WebSocket на странице Wicket

Глядя в документации:

Когда клиент подключается он регистрируется в приложении области действия реестра, используя в качестве ключа имени приложения, клиент HTTP идентификатора сессии и идентификатор страницы или имя ресурса, которое его зарегистрировало. Позже, когда серверу нужно нажать сообщение, он может использовать этот реестр, чтобы отфильтровать, какие клиенты должны получать сообщение.

и

Добавляя (Base) WebSocketBehavior для компонента (ов) Калитка будет способствовать калитка WebSocket-jquery.js библиотека, которая предоставляет некоторые вспомогательные функции для написания клиентского кода на стороне. Существует подключение к WebSocket по умолчанию на калиткой странице открыт для вас, которые вы можете использовать, как:

Wicket.WebSocket.send('{msg: "my message"}');

Если вам нужно больше соединения WebSocket, то вы можете сделать:

var ws = new Wicket.WebSocket();
ws.send('message');

Если я использую метод new Wicket.WebSocket(), как я могу позже получить зарегистрированное соединение из реестра подключений? IWebSocketConnectionRegistry позволяет получить соединение с помощью ключа, составленного из приложения, sessionId и pageId.

ответ

0

По умолчанию WebSocketConnectionRegistry поддерживает только одно соединение по ключу, но вы можете использовать свой собственный реестр для включения списка на ключ.

Зачем вам второе соединение? Обычно приложение требует только одного соединения и использует структуру ответного сообщения (например, JSON с некоторым ключом дифференциатора), чтобы решить, как обрабатывать его в браузере.

+0

Мне это не нужно, я просто не понимаю, как получить это соединение на моей стороне сервера. – Behnil

+0

Вы правы! Я удалю это из документации! –

+0

Кстати, 'SimpleWebSocketConnectionRegistry' просто хранит все подключения. Но он не создает для них ключей. Поэтому, если я использую 'var ws = new Wicket.WebSocket();' на стороне клиента, мне нужно будет предоставить свой собственный 'IWebSocketProcessor'. Я прав? – Behnil

Смежные вопросы