Guten Tag,
Vor ein paar Tagen las ich diesen Artikel:
http://www.heise.de/ix/meldung/Erste-Implementierung…
Hört sich für mich interessant an und deswegen
wollte ich das auch mal ausprobieren.
Um zu vermeiden das es wegen einer zu alten Apache Version nicht funktioniert habe ich mir die neueste Xampp Version runtergeladen und installiert.
Da man für websockets Python braucht habe ich Python installiert und mod_python als Apache Modul.
Ein Test hat gezeigt das das funktioniert.
Nun habe ich mir pywebsocket runtergeladen und
auf die Festplatte kopiert und zwar nach C:\mod_pywebsocket
Auf der Google Seite wo man pywebsocket downloaden kann gibt es einen Link dem man folgen soll wenn
man pywebsocket als Apache Modul einrichten möchte :
[http://code.google.com/p/pywebsocket/source/browse/t…](http://code.google.com/p/pywebsocket/source/browse/trunk/src/mod_pywebsocket/ init.py)
Darin heisst es
" … If mod_pywebsocket is not in the Python path, specify the following. … "
Ich habe mod_pywebsocket mal in das Pythonverzeichnis gepackt und es hat nicht funktioniert. Nun liegt der Ordner mod_pywebsocket auf C:\
Dann weiter steht dort:
"… Example snippet of httpd.conf:
(mod_pywebsocket is in /websock_lib, Web Socket handlers are in
/websock_handlers, port is 80 for ws, 443 for wss.)
PythonPath „sys.path+[’/websock_lib’]“
PythonOption mod_pywebsocket.handler_root /websock_handlers
PythonHeaderParserHandler mod_pywebsocket.headerparserhandler
…"
Das muss ich in die Datei httpd.conf ( …\Apache\conf) eintragen.
Da ich nicht einmal durch Google herausgefunden habe was sys.path angibt habe ich den direkten Pfad angegeben zu dem Order mod_pywebsocket in dem die pywebsocket Dateien drin sind.
Die Websock Handlers die oben angesprochen sind , sind die eigen geschrieben Handler die benutzt werden sollen. Den Pfad dazu soll man angeben.
Im mod_websocket Ordner befindet sich ein Unterordner namens example mit 2 Dateien zum testen ob es funktioniert.
Mein Versuch sah dann so aus:
PythonPath „[‚C:/mod_pywebsocket‘]“
PythonOption mod_pywebsocket.handler_root /example
PythonHeaderParserHandler mod_pywebsocket.headerparserhandler
Der Pfad bei PythonPath ist so richtig, geb ich ihn falsch ein kommt eine Fehlermeldung im Browser beim Aufruf der Seite und diese sagt das das nicht
der mod_pywebsocktet Ordner ist.
Schonmal ein Problem weniger
Was mich nun irritiert ist das ich den Handler Pfad /example eingebe(n soll).
So sieht der Aufruf aus. Das ist Javascript.
ws ist das websocket Protokoll.
if („WebSocket“ in window) {
var ws = new WebSocket(„ws://localhost/websocket/echo“);
alert(ws.readyState);
ws.onopen = function() {
// Web Socket is connected. You can send data by send() method.
alert(„hi“);
ws.send(‚1,1‘);
};
alert(ws.readyState);
ws.onmessage = function (evt) { var received_msg = evt.data; alert(received_msg); };
ws.onclose = function() {
alert(„websocket is closed.“); };
} else {
alert(„the browser doesn’t support WebSocket.“);
}
Im mod_pywebsocket/example Ordner und im …/htdoc/websocket Ordner befinden die gleichen Dateien und zwar
echo_client.py und echo_wsh.py
Letztere kommuniziert beim Aufruf mit echo_client.py
Ich habe oben im Javascript (zumindest den letzten Teil ) des Pfades nicht falsch eingegeben denn
_wsh.py sollte automatisch angefügt werden so
steht es in der Installtion Beschreibung.
Nur ein ws://echo hat auch nicht funktioniert
und zur Sicherheit falls es doch nicht angehangen werden sollte noch mal das selbe nur mit echo_wsh.py
Ohne Erfolg.
Im Javascript habe ich auch mal einige
alert(ws.readyState); platziert.
Das gibt nämlich den Status aus.
Dieser ist nur 0 oder 2 aber 1 ist gewollt.
0 - nich verbunden
1 - verbunden
2 - konnte nicht verbinden / verbindung geschlossen
Im Javascript gibt es auch ein alert(„hi“); doch dieses wird nie angezeigt denn es kommt gar nicht zu ws.onopen
Ich hoffe mir kann jemand helfen.
Wer das ganze selbst mal probieren möchte findet alle nötigen Links im Artikel welcher ganz oben angegeben ist.
Ich bin über jeden Tipp dankbar , ich such schon seit mehreren Tagen eine Lösung und weder Google noch irgendwelchen Foren konnten mir helfen.
Einen Guten Morgen wünsche ich.