2016-05-19 8 views
3

Я пытаюсь найти решение для сервера сигнализации для проекта на базе Android WebRTC. Оба клиента будут Android и оба расположены близко друг к другу, т. Е. - в пределах 100 ярдов или меньше. Я хотел бы, чтобы решение работало без использования общедоступного сервера сигнализации. Я бы предпочел, чтобы один из клиентов также выступал в роли сервера.Сервер локальной сигнализации WebRTC

Итак, мой вопрос: 1. Как я могу достичь этого, чтобы один был сервером? то есть - могу ли я установить его как горячую точку или использовать Wi-Fi напрямую? 2. Если я смогу достичь # 1, то какое хорошее решение для сервера сигнализации работает на android? Могу ли я запустить один из серверов nodejs на Android?

+0

ли Вы хотите позвонить без Интернета? – Haven

+0

@ Хейвен - да. Мне не нужно перебирать сеть. –

ответ

3

Сигнальный сервер - это просто способ обмена сообщениями между двумя сторонами. В случае WebRTC эти сообщения являются кандидатами предложения/ответа и ICE.

Вы можете использовать любой тип сервера, который вы хотите сделать, вы даже можете сделать это вручную :).

Вы также можете использовать один из клиентов в качестве сервера, но тогда вам придется каким-то образом передать IP-адрес другому. Возможно, используйте Wi-Fi direct и получите его программно.

+0

Спасибо, Адриан. Итак, вы говорите, что мне не нужен сервер в этом сценарии? То есть - Могу ли я просто использовать webrtc с прямыми сетевыми сокетами через локальную точку доступа? Таким образом, сохранение процесса в моем приложении? –

+0

Поскольку я знаю IP-адрес клиентов, мне не нужно проходить NAT. Поэтому интересно, могу ли я обойтись без необходимости кандидатов TURN, STUN и ICE. –

+2

Вам нужен сервер, потому что вам нужно как-то передать сообщения автоматически. Но сервер и клиент могут находиться в одном приложении. –

2

С помощью WebRTC сервер сигнализации - это всего лишь способ помочь вам передать ваше сообщение, обмениваться информацией (пакет SDP (createOffer/answer), обменять кандидатов и т. Д.).

Пример: вы можете использовать GCM (Free) в качестве сервера сигнализации или использовать Nodejs с socket.io, websocket, XMPP и т. Д. Единственное, что вам нужно, это передать сообщение между двумя одноранговыми узлами.

Вы можете обратиться к этой обучающей программе: http://www.html5rocks.com/en/tutorials/webrtc/basics/

+0

Спасибо @ Khoatd, я понимаю цель сигнализации. Мой вопрос более с точки зрения того, что является хорошим механизмом для выполнения сигнализации в моем сценарии - 2 клиента android без подключения к Интернету, предполагая, что один действует как сервер. –