PHPWebSockets, czat; multiplayer online

0

Witam
Programuje czat online na zasadzie websocketów napisanych w PHP i JavaScript. To na razie malenki projekt wiec moge kazdemu udostepnic do niego link: https://www.sendspace.com/file/x9thad
Żeby to odpalic trzeba uruchomic konsole cmd.exe przejsc do folderu gry zawierajacego plik server.php i wpisac
"php server.php".
Wszystko działa jak trzeba, ten czat jest tylko dla mnie podkladka pod wieksza gre multiplayer online. Wszystko jednak rozgrywa sie o to, ze chcialbym to wrzucic w internet i tutaj po 1 nie wiem jaki hosting pozwalalby na uruchomienie najpierw poprzez cmd skryptu PHP, po 2 wolalbym to jednak zrobic na wlasnym serwerze, ale nie do konca wiem jak.
Nie znam sie za bardzo na sieciach, połączenia są następujące:
w index.html:

 
Server = new FancyWebSocket('ws://127.0.0.1:3306');

start serwera w pliku php server.php jest nastepujacy:

// start the server
$Server = new PHPWebSocket();
$Server->bind('message', 'wsOnMessage');
$Server->bind('open', 'wsOnOpen');
$Server->bind('close', 'wsOnClose');

$Server->wsStartServer('127.0.0.1', 3306);
 

Działa to oczywiscie na jednym komputerze otwierajac dwie przegladarki, ale gdy wpiszę w index.html np
ws://swoje zewnętrzne IP:3306
wtedy nie łączy się. Nie znam sie na sieciach, wiec prosilbym o konkretny przyklad rozwiazania i wyjasnienie jak to zrobic.
Domyslam sie ze musze jakos upublicznic swoje zewnętrzne IP?
Bede wdzieczny, pozdrawiam

0

Zewnętrzne IP jest siłą rzeczy publiczne (u większości ISPów).
Musisz routnąć port 3306, tak aby wskazywał na Twój komputer w podsieci (zgaduję, że masz router w domu).

0

Ok, ale jak to zrobić? To sie ustawia w routerze? Czy gdy to zrobię należy w index.html wpisać

$Server = new FancyWebSocket('ws://moje zewnętrzne IP:3306');

? bo tutaj inne komputery muszą móc się łączyć z moim serwerem server.php
Rozumiem ze w server.php nic nie trzeba zmieniac, albo ewentualnie

$Server->wsStartServer('127.0.0.1', 3306); na $Server->wsStartServer('0.0.0.0', 3306);

?
Prosze o wiecej szczegolow, tutaj czas jest wazny

1

Nie zawsze jest możliwość wystawienia czegoś z domu w Internet. Poczytaj o czymś takim jak "port forwarding" (znajdziesz mnóstwo info z opisem do Twojego routera na pewno), generalnie sprowadza się to do tego, że definiujesz na routerze, żeby połączenia przychodzące na zewn. IP i port(y) XXX po TCP/UDP kierować na określone IP lokalne, określony port (tak, możesz zmienić). Tylko nie zawsze masz dostępne u ISP "zewnętrzne/publiczne" IP pod taki użytek - czasem IP dzielisz z wieloma osobami i musiałby Twój ISP pierwsze przekierować okreśłony port na Twój router, a potem ty dalej co tam chcesz.

A co do hostingu - w stopce mam link do kont shellowych, gdzie możesz sobie odpalać własne programy. Bardzo fajne, polecam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1