2015-01-25 1 views
1

Я создал игру, используя HTML5 и WebSockets, который играл как с ПК и мобильным устройством (несколько мобильных устройств, также могут быть воспроизведены):Mobile PhoneGap приложений в локальной сети

В игре есть этап - ПК или планшет.

И несколько игроки - Другие мобильные устройства

В настоящее время связи между рабочим и игроками с номером (Этап показывает номер и игрок может присоединиться через это число), тем не менее, я ищу способ, которым Игроки могут присоединиться, просто находясь в той же локальной сети, что и Stage, что означает автоматическое обнаружение через локальную сеть.

Я искал WebRTC и другие решения p2p, но ничего не могу найти. Есть ли что-то еще, что я могу использовать, или это совершенно невозможно?

+0

Возможный дубликат [Phonegap Bonjour/Zeroconf или Websocket IP Discovery из HTML5] (http://stackoverflow.com/questions/8676590/phonegap-bonjour-zeroconf-or-websocket-ip-discovery-from-html5) – ceejayoz

ответ

2

Внутри браузера не поддерживается только javascript. Там же, как представляется, большое количество Cordova/PhoneGap плагинов, которые подразумевают, чтобы сделать это:

http://plugreg.com/plugin/weconstudio-it/phonegap-plugin-ipaddress https://github.com/jcesarmobile/my-phonegap-plugins/tree/master/iOS/NetworkInterfacesPlugin

Как и один из них отметил в комментарии выше. Похоже, это либо Android, либо IOS. Кто-то должен написать тот, который работает на обоих!

Если бы это был я. Я бы, вероятно, работал с заголовками браузера на Stage: REMOTE_ADDR, HTTP_CLIENT_IP и т. Д. Есть несколько тонких моментов для этого: http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html

В локальной сети вы сможете получить реальный IP-адрес каждого устройство. Частные сети попадают в конкретное адресное пространство:

10.0.0.0  - 10.255.255.255 
172.16.0.0  - 172.31.255.255 
192.168.0.0  - 192.168.255.255 

Итак, ваш этап будет знать, когда его клиенты подключаются к нему по локальной сети. Получается ли это, когда вам нужно идти?

+0

Ну, я могу принять вашу идею и использовать ее только на веб-сайтах, чтобы сообщить мне IP-адрес (я использую socket.io так http://stackoverflow.com/questions/6458083/socket-io-get-clients-ip- адрес). Однако этого будет достаточно для обеспечения того, чтобы Stage и Players находились в одной локальной сети? И в этом отношении, есть ли способ для них обоих отправлять сообщения напрямую друг другу? –

+0

Мне кажется, что если IP-адреса находятся в диапазонах выше, все должны находиться в одной локальной сети. –

+0

Конечно, я просто спрашиваю, будет ли это способ получить IP-адрес каждый раз (в случае прокси-сервера или что-то еще). –

2

Вы можете попробовать этот плагин cordova-plugin-networkinterface, который поддерживает устройства Android, Blackberry 10, iOS и Windows.