Войти
UnityФорумСеть

[Unity, Браузеры] Аналог UDP broadcast для поиска сервера в сети

#0
17:40, 11 мар. 2016

Всем привет!

Это не совсем игровой проект, но все же. Есть локальная сеть, в которой живет сервер и несколько клиентов. Раньше работало в два этапа(упрощенно):

0. каждый клиент по UDP в сеть пускал broadcast на определенный порт, а сервер этот broadcast ловил и отвечал клиенту номером TCP порта, по которому клиент может подключиться.
1. клиент подключался к этому порту по TCP

Сейчас есть задача сделать клиента для браузера на Unity, там сокетов голых нет, но есть WebSocket'ы, которые пункт 1 благополучно решают.
А вот что делать с пунктом 0?
Как клиенту найти сервер в локальной сети?

Заранее спасибо за помощь!


#1
18:31, 11 мар. 2016

броадкасты - штука не надежная, они даже в локальной сети могут не ходить, все зависит от того, что там наадминистрировали. Бывает что и в конфигурации "по умолчанию", не везде ходят, когда в конторе два и более сегментов сети, связанных через компьютерный роутер-сервер.
Само собой, через интернет они не ходят никогда.

#2
22:37, 11 мар. 2016

Zab
Ну там всегда будет только нами настроенная сеть, с нашим оборудованием - проблем быть не должно, broadcast'ы в таком случае - ИМХО самый просто способ всех зарегистрировать... Хотя, возможно, мы все-таки клиенты и для Инета сделаем - тогда да, уже не побродкастишь... Надо будет еще придумывать механизм - можно через сервис запрашивать ip сервера... В общем - спасибо, дал пищу для размышлений

#3
2:09, 12 мар. 2016

локальный бродкаст типа UPnP только для компонентов сервера, надеюсь их больше одного
для клеента делают логин сервис, он же высылает параметры соединения после аутентификации, и сессионный ключ

З.Ы. и вообще странная аппликуха : )
неужели никто из дома не заходит на работу?
или у вас там VPN типа хамачи?

#4
2:23, 12 мар. 2016

Sh.Tac.
> локальный бродкаст типа UPnP только для компонентов сервера, надеюсь их больше
> одного
Можешь подробнее чуть разъяснить: компоненты сервера, которых должно быть больше одного - почему они должны через локальный бродкаст общаться(или что они через него делают?) и почему этих компонентов должно быть больше одного? Про компоненты какого типа идет речь? Просто у меня сервак разбит на компоненты, но, возможно, мы о разном говорим?
> для клеента делают логин сервис
А путь к этому сервису клиент откуда знает? Его зашивают в клиента?

#5
2:25, 12 мар. 2016

Sh.Tac.
> З.Ы. и вообще странная аппликуха : )
> неужели никто из дома не заходит на работу?
Да не - там одно казино, на него один сервак и несколько клиентов, доступ вне внутренней сети запрещен.

#6
2:33, 12 мар. 2016

Paltr
> Просто у меня сервак разбит на компоненты,
я про т.н. "архитектуру exe-шников" : )
это UNIX way когда на кажный сервис один процесс

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

> Его зашивают в клиента?
или подкладывают в конфиг клеента

#7
2:44, 12 мар. 2016

Sh.Tac.
> я про т.н. "архитектуру exe-шников" : )
> это UNIX way когда на кажный сервис один процесс
Спасибо большое за разъяснение! Да - компоненты есть, но сейчас они связаны в одном ехе и общаются посредством Qt'шных сигналов, так что на процессы разбить труда не составит - просто для данной задачи маловероятно, что понадобится.

> или подкладывают в конфиг клеента
Разумно, видимо так и поступлю.

Спасибо большое за информацию!

#8
2:47, 12 мар. 2016

Paltr
> там одно казино
бывает что располагается на корабле в нейтральных водах, так что удалённый доступ... хотя не, надо требовать командировку : )

#9
2:50, 12 мар. 2016

Sh.Tac.
> хотя не, надо требовать командировку : )
Ты в теме :)

UnityФорумСеть

Тема в архиве.