我使用 ws4py 0.3.2 创建了一个 Web 服务器套接字,并在 python 3.3.2 上使用 cherrypy 3.2.4。当我尝试打印客户端发送到服务器的消息时,如下所示
class ChatWebSocketHandler(WebSocket):
def received_message(self, m):
cherrypy.log("[+] Message => {%d} %s" % (len(m), m))
cherrypy.engine.publish('websocket-broadcast', m)
我收到错误消息:
File "./server.py", line 13, in received_message
cherrypy.log("[+] Message => {%d} %s" % (len(m), m))
TypeError: __str__ returned non-string (type bytes)
返回的对象类型为 TextMessage 或 BinaryMessage,因此不能将其直接转换为字符串。要访问有效负载(在本例中为字符串),您需要访问 data 属性:
喜欢这个:
def received_message(self, m):
if m.is_text:
recvStr = m.data.decode("utf-8")
print(recvStr)
希望这是可用的。