Sven Rautenberg: REALTIME Schachserver

Beitrag lesen

Moin!

IRC beispielsweise ist eigentlich eine Echtzeit-Chatsoftware. Server gibts dafür mehr als genug, und Client-Bibliotheken für diversteste Programmiersprachen wohl auch.

Sven, bei den Einschränkungen von HTTP gebe ich Dir Recht. Allerdings fände ich es unschön, für die Kommunikation auf IRC zurückzugreifen. Für TCP, die Ebene unter IRC, gibt es genauso Bibiotheken und es ist imho sogar unkomplizierter. So kann man sich sein eigenes Protokoll definieren, ohne sich mit IRC-Channels und -Usern herumschlagen zu müssen.

Du hast natürlich Recht, dass IRC nicht unbedingt einfacher ist. Bei TCP baut man eine Verbindung auf, schreibst und liest ein wenig über den Socket, und irgendwann macht man die Verbindung wieder zu.

Die Sache ist nur: Wenn man diesen Weg gehen will, braucht man dafür einen selbstgeschriebenen Server. Und auch die Möglichkeit, so einen Server dann auf irgendeiner Maschine laufen zu lassen. Das ist keinesfalls ein Feature des handelsüblichen "Webspace", sondern dafür braucht man dann einen eigenen Server, über den man frei verfügen kann. Von den Sicherheitsproblemen, die durch unbekümmerte Selbstprogrammierung von Serversoftware auftreten kann, mal ganz abgesehen.

Da erscheint es mir irgendwie einfacher, wenn man sich nur auf die Clientseite stürzt und IRC implementiert, und sich dann noch einen freundlichen IRC-Server sucht, auf dem man einen eigenen Channel eröffnet und damit testet bzw. diese Infrastruktur dann auch für den endgültigen Einsatz nutzt.

Den Server würde ich, da der Code ja schon in php vorliegt, ggfs. in php belassen (ich weiß leider nicht, ob es für php eine TCP-Bibliothek gibt), oder nach Perl portieren, das ist syntaktisch ähnlich und dort gibt es auf jeden Fall ein leicht zu bedienendes Modul für TCP (Stichwort "IO::Socket").

PHP kann als TCP-Server aktiv werden. Kann sogar forken. Aber ich würde im Zweifel doch lieber ein C-Programm einsetzen, denn PHP und auch Perl ziehen durch ihre Skriptspracheneigenschaft natürlich noch ein erhebliches Maß an Ressourcen und Performance allein für ihre Existenz.

Für den Client würde ich ein Java-Applet verwenden, das kann man prima in eine Website einbinden (keine lästigen Downloads...), man kann komfortabel eine grafische Oberfläche darstellen und für TCP gibt es sicher auch die passenden Klassen.

Was heißt hier "keine lästigen Downloads"? Im Gegenteil: Lästige Downloads bei jedem Seitenaufruf. Nur sieht man die nicht.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)