mod_pywebsocket als Apache Modul

Alles, was den Apache betrifft, kann hier besprochen werden.

mod_pywebsocket als Apache Modul

Postby Hook » 11. December 2009 17:44

Hey Leute

Habe vor zwei Tagen folgendes gelesen:
http://www.heise.de/ix/meldung/Erste-Implementierungen-von-WebSockets-881857.htm

Das wollt ich dann natürlich gleich mal ausprobieren also hab ich mich an die Arbeit gemacht.

Zu erst habe ich mir Xampp 1.7.2 runtergeladen. Enthalten ist Apache 2.2.12 .
Danach habe Python 2.5.4 runtergeladen und installiert und anschließend
mod_python-3.3.1.win32-py2.5-Apache2.2.exe runtergeladen, installiert und getestet.

Beim Aufruf einer Testdatei namens mptest.py mit dem Inhalt
Code: Select all
from mod_python import apache
def handler(req):
 req.content_type = 'text/plain'
 req.write("Hello World!")
 return apache.OK


Gibt mir beim Aufruf im Browser " Hello World! " aus sollte also funktionieren.

Fehlt nun noch pywebsocket ( http://code.google.com/p/pywebsocket/downloads/list )

Auf der Seite http://code.google.com/p/pywebsocket/ steht unten das ich mir , wenn ich es als Apache Modul haben möchte , die Anweisung von der Seite http://code.google.com/p/pywebsocket/source/browse/trunk/src/mod_pywebsocket/__init__.py beachten muss.

Soweit ich das verstehen sagt mir die obige Anweisung das ich nur etwas ändern muss in der Datei httpd.conf vom Apache wenn ich pywebsocket nicht im Python Verzeichnis habe ( Standard Installation auf C: )

Hab als das pywebsocket Archiv geladen ( neueste) und es in den C:\Python25 Ordner entpackt - mal mit dem Überorder namens mod_pywebsocket-0.4.3 und mal nur die Inhalte aus diesem Ordner.

Doch laufen tut es leider nicht.
Natürlich habe ich auch die neueste Google Chrome Version geladen ( DL :http://www.google.com/chrome/eula.html?extra=devchannel )

und damit dann eine Seite test.html aufzurufen in dem ein Script vermerkt ist zum testen :

Code: Select all
<script>
if ("WebSocket" in window) {

  var ws = new WebSocket("ws://localhost/websocket/test.php");
 

alert(ws.readyState);

   ws.onopen = function() {
    // Web Socket is connected. You can send data by send() method.
    alert("hi");
   ws.send('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.");
}
</script>



Ruft man die Seite zB im FF auf bekommt man die Meldung das der Browser keine Websockets unterstützt und auch so sagt das eine ältere Chrome Version also
hab ich wohl die richtige genommen.

alert(ws.readyState); gibt eine Zahl aus wobei

0 für "nicht verbunden",
1 für "verbunden",
2 für "verbindung getrennt"

steht. Erste alert(ws.readyState); gibt Null aus und das zweite schon 2.

alert in
Code: Select all
   ws.onopen = function() {
    // Web Socket is connected. You can send data by send() method.
    alert("hi");
   ws.send('1');
  };


wird nie aufgerufen. Also bin ich mir doch ziehmlich sicher das ich es nicht richtig als Apache Modul eingerichtet habe.


Wie setz ich denn richtig den Pfad zum mod_pywebsocket ?

In der Anweisung steht :
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.)

<IfModule python_module>
PythonPath "sys.path+['/websock_lib']"
PythonOption mod_pywebsocket.handler_root /websock_handlers
PythonHeaderParserHandler mod_pywebsocket.headerparserhandler
</IfModule>


Also ich denk <ifModule> checkt ob python_module installiert ist.

PythonPath , ändert das den Pfad oder gibt das folgende sys.path den Pfad zum Pythonordner an?
Falls nein , was ist sys.path?


Ich hoffe hier kann mir einer helfen ich weiss nicht mehr weiter und such mich schon tot seit 2 Tagen ...

Schönen Abend
Hook
 
Posts: 1
Joined: 11. December 2009 17:36

Return to Apache

Who is online

Users browsing this forum: No registered users and 172 guests