我是 python 和 websockets 的新手,想了解更多关于如何使用 pywebsocket 的信息。
目前,我正在编辑 pywebsocket 包中的示例,不幸的是,我无法理解以下代码中的错误:
_GOODBYE_MESSAGE = u'Goodbye'
def web_socket_do_extra_handshake(request):
request.ws_stream.send_message("Welcome", binary=False) # Error line
pass # Always accept.
def web_socket_transfer_data(request):
while True:
line = request.ws_stream.receive_message()
if line is None:
return
if isinstance(line, unicode):
request.ws_stream.send_message("Sending", binary=False)
request.ws_stream.send_message(line, binary=False)
if line == _GOODBYE_MESSAGE:
return
else:
request.ws_stream.send_message(line, binary=True)
我想在连接初始化时向客户端发送“欢迎”消息。但是当我从 Handshake 发送任何消息时,我的 websocket 用代码 1006关闭了
为什么呢?
我认为问题可能是,握手期间无法发送任何数据,所以我尝试了这种方式:
_GOODBYE_MESSAGE = u'Goodbye'
welcome = True
def web_socket_do_extra_handshake(request):
pass # Always accept.
def web_socket_transfer_data(request):
while True:
if welcome:
welcome = False
request.ws_stream.send_message("Welcome !", binary=False)
line = request.ws_stream.receive_message()
if line is None:
return
if isinstance(line, unicode):
request.ws_stream.send_message("Sending", binary=False)
request.ws_stream.send_message(line, binary=False)
if line == _GOODBYE_MESSAGE:
return
else:
request.ws_stream.send_message(line, binary=True)
我在第一种或第二种情况下都没有成功,你能解释一下我做错了什么吗?谢谢
PS:我将 mod_pywebsocket 作为 Apache 的模块运行(不是独立的),我的 python 版本是 2.6.6;我试图运行我的两个脚本$python script_wsh.py
来检查语法错误