开发者

handler for python HTTPServer that uses threads

id like to write a handler for the standalone server coming with pywebsocket (http://code.google.com/p/pywebsocket) that uses a thread. in the example coming with pywebsocket the handler is just a file with a function:

def web_socket_transfer_data(request):
  while True:
    line = request.ws_stream.receive_message开发者_开发技巧()
    if line is None:
      return
    request.ws_stream.send_message(line)
    if line == _GOODBYE_MESSAGE:
      return

ive tried to add a thread:

class _Stub(threading.Thread): 
def __init__ (self):
    threading.Thread.__init__(self)
    self._test = 0

def run(self):
    while True:
        time.sleep(5)
        self._test = self._test + 1

but the server crashes without any comment... so how is this done?

thanks for any pointers.


The standalone server isn't designed to receive messages non-blocking. From the documentation of the class "MessageReceiver" in msgutil.py (at least not when using SSL):

This class receives messages from the client.

This class provides three ways to receive messages: blocking,
non-blocking, and via callback. Callback has the highest precedence.

Note: This class should not be used with the standalone server for wss
because pyOpenSSL used by the server raises a fatal error if the socket
is accessed from multiple threads.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜