To nie jest typowe pytanie programistyczne, ale widzę, że jest to ogromna przeszkoda w testowaniu kodu opartego na Bonjour.
Bonjour obsługuje dwa mechanizmy serwerów w celu informowania klientów o ich istnieniu, najpierw multicast w sieci lokalnej, DNS second.
Multicast są łatwe w użyciu, ponieważ nie ma żadnych ustawień, niestety można ich używać tylko w tej samej sieci.
DNS ma lukę w pracy z routerami (internet), ale wymaga odpowiednio skonfigurowanego serwera nazw i klientów używających tego serwera nazw.
Myślę, że masz tylko dwie opcje.
- reklamować swoje usługi bonjour na sieci WiFi
- skonfigurować własny DNS
W pierwszym przypadku ważne jest, aby zdać sobie sprawę, że usługa nie musi być ogłoszone przez własnej aplikacji działa na komputerze Mac. Możesz użyć narzędzia dns-sd
, aby zarejestrować dowolny adres IP/port jako usługę Bonjour w sieci. Aby to zadziałało trzeba maszynę (Mac, Linux), który jest połączony z bezprzewodowym dostępem do Internetu i uruchom dns-sd
tam w sposób podobny do tego:
dns-sd -P "Stack Overflow" _http._tcp . 80 stackoverflow.com 69.59.196.211
To zarejestrować „http” usługę o nazwie „komin Przepełnienie "jako usługa Bonjour. Sprawdź to - uruchom go w terminalu i sprawdź w zakładkach Safari pod Bonjour. W ten sam sposób możesz zarejestrować swoją aplikację.
Niestety, musisz uruchomić to na komputerze podłączonym do sieci Wi-Fi. Oznacza to, że Twoja aplikacja Mac będzie reklamować się w swojej własnej sieci Ethernet, dns-sd
reklamuje się przez Wi-Fi.
Druga opcja jest nieco przerażająca, ale nie jest to wielka sprawa, jeśli z niektórymi administracjami chcesz zabrudzić sobie ręce.
Ponownie, nie trzeba mieć usług dynamicznie rejestrowanych w DNS. Możesz po prostu zakodować nazwę komputera Mac i port aplikacji w konfiguracji DNS. To tylko 4 linie, które należy dodać do pliku strefy (plik konfiguracyjny DNS).
b._dns-sd._udp IN PTR @ ; b = browse domain
lb._dns-sd._udp IN PTR @ ; lb = legacy browse domain
_icool._tcp PTR iCool\ App\ Service._http._tcp
iCool\ App\ Service._http._tcp SRV 0 0 8888 macpro.domain.com.
Pierwsze dwie linie mówi klientom (urządzeń iOS w Twoim przypadku), które Bonjour jest włączona dla tej domeny. Trzecia linia informuje klientów, że dostępna jest usługa "Usługa aplikacji iCool" typu icool
. Czwarty wiersz informuje klientów o aktualnym adresie i porcie usługi.
Klienci będą szukać wpisów DNS dla swoich skonfigurowanych (lub odebranych przez DHCP) "Szukaj domen". Sprawdź ustawienia sieci.
Możesz uruchomić serwer nazw na Macu, w niektórych systemach Linux lub skorzystać z usług takich jak dyndns.com.
Mam nadzieję, że to pomoże.
Czy na pewno jest to pytanie dotyczące programowania? Brzmi bardziej jak problem z konfiguracją sieci. –