Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

php websocket server an port 80?

Diskussion: php websocket server an port 80? im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo, ich bastele grade an nem kleinen browser RTS game ( Browser RTS Engine pre - Alpha ). für ...

Like Tree1Likes
  • 1 Post By bitmuncher

Antwort
Alt 24.04.11, 15:34   #1 (permalink)
 
Registriert seit: 03.07.10
ronco Leistung: Facit NTK
Likes: 0
Standard php websocket server an port 80?

Anzeige

Hallo,

ich bastele grade an nem kleinen browser RTS game (Browser RTS Engine pre - Alpha). für den multiplayer modus hab ich mich für websockets entschieden.. da hab ich mir auch en kleinen php server gebaut der local super leuft.

jetzt wollte ich das ganze mal testeshalber auf einen server tun. nun ist die frage giebts eine möglichkeit soeinen php socket server an port 80 zu binden? weil die meissten hoster verbieten das.

anderst gefragt: ist es möglich auf port 80 zu hören ohne ihn vorher mit socket_bind zu binden?

mein socket code:

PHP-Code:

$master
=socket_create(AF_INETSOCK_STREAMSOL_TCP)     or die("socket_create() failed");
    
socket_set_option($masterSOL_SOCKETSO_REUSEADDR1)  or die("socket_option() failed");
    
socket_bind($master$address$port)                    or die("socket_bind() failed");
    
socket_listen($master,20)                                or die("socket_listen() failed");
    echo 
"Server Started : ".date('Y-m-d H:i:s')."\n";
    echo 
"Master socket  : ".$master."\n";
    echo 
"Listening on   : ".$address." port ".$port."\n\n"

danke schonmal
ronco ist offline   Mit Zitat antworten
Alt 24.04.11, 18:16   #2 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: 8086
Chakky eine Nachricht über ICQ schicken
Likes: 110
Standard

ich meine port 80 ist doch schon "blockiert" kannst nicht auf was anderes ausweichen?

//arg unbedachtet denkfehler sry
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world

Geändert von Chakky (24.04.11 um 19:18 Uhr)
Chakky ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.04.11, 19:11   #3 (permalink)
Themenstarter
 
Registriert seit: 03.07.10
ronco Leistung: Facit NTK
Likes: 0
Standard

dann würde ich net fragen

habe halt gelesen das sowas anscheinend möglich ist und es hat vorteile ... port 80 is so gut wie immer frei in den firewalls, und mann könnte das ganze auf nem shared server laufen lassen.

hab mich schon durch die ganzen socket php sachen gequält und da sind manche funktionen dabei die so klingen also ob sowas machen könnten nur ich krigs net hin und finde auch kaum beispiele..

ich breuchte irgentwas das die anfragen von port 80 auf irgent einen freinen port (8000 oder 8080) umleitet wo ich dann mit meinem gebundenen socket weitermachen kann.

habe auch gelesen das bei der entwicklung von websocket extra darauf geachtet wurde, das es neben dem http sachen auf einem port laufen kann .. weiss halt net ob das nur für die javascript (bei mir client) seite gilt...
ronco ist offline   Mit Zitat antworten
Alt 25.04.11, 00:42   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Es gibt theoretisch 2 Möglichkeiten.

Möglichkeit 1: Du programmierst einen eigenen Webserver, der einen Multicast-Socket nutzt. Deine PHP-App könnte dann der gleichen Multicast-Gruppe beitreten. SO_REUSEADDR muss natürlich von beiden Programmen als Socket-Parameter genutzt werden.

Möglichkeit 2: Alternativ kannst du auf Linux- und einigen Unix-Systemen ein "Remapping" der Ports nutzen. Das heisst, dass du die Programme auf anderen Ports lauschen lässt und dass du sie mittels Firewall auf Port 80 umleitest. Ob das mittlerweile auch mit Windows geht, hab ich keine Ahnung. Ich vermute aber, das dürfte mit den Browsern Schwierigkeiten machen. Dein Webserver müsste immer darauf achten ob der Request auch wirklich ein HTTP-Request ist oder ob sich ggf. deine PHP-App meldet und er die Anfrage ignorieren kann.

Binden kann ein Socket jedenfalls immer nur an einen freien Port. Du wirst also um einen modifizierten Webserver nicht herum kommen. Übrigens sind auch zumeist die SMTP-Ports frei. Wenn auf dem Server also kein Mailserver läuft und du root-Rechte hast, könntest du deine PHP-App an Port 25 binden. Allerdings sollte sich nach dem Binden der Socket-Owner ändern, so dass der Rest des Programmablaufs nicht als root stattfindet. Es ist bekanntermaßen keine gute Idee Programme mit Root-Rechten an's Netz zu hängen.
Inliferty likes this.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 25.04.11, 09:28   #5 (permalink)
Themenstarter
 
Registriert seit: 03.07.10
ronco Leistung: Facit NTK
Likes: 0
Standard

ok danke

also wirds nix mit dem websocket server auf nem shared hoster

Zitat:
... Dein Webserver müsste immer darauf achten ob der Request auch wirklich ein HTTP-Request ist oder ob sich ggf. deine PHP-App meldet und er die Anfrage ignorieren kann.
wenn ich das richtig verstanden habe, haben die dafür websocket so definiert das die gesendeten websocket sachen immer "markiert" sind .. in php muss ich z.b. immer chr(0).$data.chr(255) um die zu sendenden sachen tun. es startet also mit 0 und enden mit dem letzten ascii zeichen und dazwischen darf utf8 sein.
ronco ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » php websocket server an port 80?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61