Websockets to fajna, najnowocześniejsza technologia opakowana w HTML5. Zasadniczo można otworzyć gniazdo sieciowe, aby umożliwić trwałą dwukierunkową komunikację z serwerem WWW. Klient (interfejs użytkownika) może spontanicznie wysyłać wiadomości, a serwer może również wysyłać wiadomości.
Istniejąca technologia (JavaScript) wymaga, aby klient uruchomił wszystko - serwer nie może wysłać do klienta niczego, czego klient nie zażąda. Dlatego skrypty muszą stale odświeżać i ponownie żądać danych, które mogły się nie zmienić. Websockets działają bardziej na zasadzie „ push ” i pozwalają, aby nowe dane pojawiały się w potoku za każdym razem.
Niestety większość (wszystko, co mogę znaleźć) implementacji websocket wymaga do działania określonej aplikacji serwera. Ludzie uruchomią Apache na portach 80 i 443 (http i https) i uruchomią inny system (zazwyczaj Node.js) na innym porcie (np. 8000 lub 8080), aby obsłużyć żądania Websocket.
Działa to oczywiście, ale ma pewne wady.
Mam wtyczkę, którą chcę zbudować, która bardzo skorzystałaby na korzystaniu z websockets w WordPress. Ale jeśli użytkownik musi zainstalować drugi serwer WWW (zwykle niemożliwy dla osób korzystających z hostingu współdzielonego), nie będzie on działał jako wtyczka.
Tak więc, dla każdego z was, którzy mają doświadczenie, w jaki sposób uczynić WordPress kompatybilnym z gniazdami internetowymi? Czy sprawisz, że WordPress sam zajmie się komunikacją, czy umieścisz w skrypcie inny skrypt mini-serwera? Jeśli już to zrobiłeś, jak to zrobiłeś, nie psując samego WordPressa?
Możliwe zasoby?
Aktualizacja z 21.09.11
Biorąc pod uwagę, w jaki sposób Apache (najczęściej instalowany serwer do uruchamiania WP na współdzielonym hoście) nie może tak naprawdę natywnie obsługiwać gniazd sieciowych, zastanawiam się nad alternatywą. Kilka wtyczek (na przykład JetPack) rozmawia z zewnętrzną usługą lub interfejsem API w celu wygenerowania zawartości.
Statystyki żądają treści od Automattic. Akismet wysyła dane tam iz powrotem z zewnętrznego serwera. Po upływie terminu przesyła treść w momencie publikacji. Kilka narzędzi SEO przesyła rzeczy tam iz powrotem przez systemy zewnętrzne.
Czy jako alternatywa dla umieszczenia kodu websocket we wtyczce WordPress byłoby możliwe hostowanie usługi websocket w centralnej lokalizacji i interakcja z tym frontendem WordPress?