2010-09-20 13 views
9

Jestem zaznajomiony z użytkowaniem Bonjour do usług reklamowych w domenie "lokalnej". Przeanalizowałem kilka przykładów i znam odpowiednie klasy kakao, których używam.Jak zareklamować usługę za pomocą Bonjour w podsieciach?

Ciekawi mnie, jak reklamuję prostą usługę Bonjour w innej podsieci. W szczególności staram się napisać usługę sieciową, która działa na moim pulpicie, który jest podłączony za pośrednictwem sieci Ethernet. Klient działa na urządzeniu mobilnym (iPhone/iPad), które jest połączone przez Wi-Fi. W mojej konfiguracji sieci Wi-Fi znajduje się w innej podsieci niż sieć Ethernet. Jednak oba znajdują się za zaporą ogniową. Nie muszę reklamować się poza firewallem, chcę po prostu, aby klienci wifi mogli zobaczyć usługi reklamowane przez serwer podłączony do sieci Ethernet.

Czy to możliwe? Wiem, że Bonjour ma wspierać komunikację przez podsieci, ale kiedy tylko spróbuję przeczytać o tej funkcji, zanurkuje ona głęboko w rekordy DNS i cokolwiek. Jestem programistą aplikacji ... Nie mam pojęcia o tych rzeczach, nie chcę też, aby użytkownicy martwili się o to. Czy brakuje mi czegoś prostego?

+0

Czy na pewno jest to pytanie dotyczące programowania? Brzmi bardziej jak problem z konfiguracją sieci. –

Odpowiedz

15

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.

  1. reklamować swoje usługi bonjour na sieci WiFi
  2. 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.

+0

Jeśli nie masz żadnego pola w sieci Wi-Fi, ale masz więcej urządzeń z systemem iOS, możesz utworzyć małą aplikację, która zarejestruje aplikację Twojego Macintosha w sieci Wi-Fi. – Michal

+0

dziękuję człowiekowi, to naprawdę wyjaśniło mi to. Myślałem, że to coś innego po stronie PROGRAMOWANIE. – pj4533

+0

Hej, napisałem post na blogu z aplikacją, którą napisałem, żeby reklamować moją usługę bonjour. Udało mi się również pozyskać mojego menedżera zadań, rzeczy, synchronizując w moim biurze tę technikę. Zrobiłem aplikację ogólną i umieściłem kod na GitHub. http://www.saygoodnight.com/?p=170 jeszcze raz dzięki. – pj4533

Powiązane problemy