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

#javascript #linux #node.js #socket.io

#javascript #linux #node.js #socket.io

Вопрос:

Я начинаю использовать socket.io Я разрабатываю очень простой чат, который подключает пользователя к серверу nodejs. У меня есть чат на www.exmaple.com/chat.html мой вопрос:

могу ли я использовать только ОДИН сокет с пользователем, который откроет чат во многих окнах?

Я имею в виду…

Как Facebook, если я открою больше вкладок, я смогу увидеть сообщение моего друга во всех окнах.

Итак, я должен сделать то же самое, но я не хочу открывать сокет в каждом окне, а только один для all…is это возможно?

Спасибо!

Ответ №1:

да, вы можете, и вы можете справиться с этим, поместив соответствующие теги в сообщения, теги показывают, какому окну принадлежит сообщение или какому пользователю …

смотрите эту ссылку для создания одноэлементного класса javascript КАК НАПИСАТЬ ОДНОЭЛЕМЕНТНЫЙ КЛАСС В JAVASCRIPT

Комментарии:

1. хммм, минуточку… проблема в том…. Как другие окна могут обрабатывать сообщения, если они не подключены к серверу?

2. Я бы подключил только ОДНО окно, а другое получило его автоматически

3. вы можете создать статический класс, который обрабатывает трафик сообщений на стороне клиента. у класса shod есть событие с именем onMessageReceived, другое окно должно обрабатывать это событие, каждый раз при получении сообщения событие будет запускаться, и все окна будут знать, и если сообщения принадлежат им, могут его обработать

4. да, правильно… я хочу это сделать … но как я могу «поделиться» классом js, который подключается к серверу ТОЛЬКО один раз?… а затем поделиться сообщением со всеми окнами / страницами? Спасибо

5. @DeveloperX Я видел ссылку, которую вы мне дали, но работает ли она на разных страницах / окнах? Я имею в виду … если я вызываю этот класс с разных страниц, могу ли я проверить, был ли объект инициализирован ранее?