我使用ws4py 0.3.2创建了一个Web服务器套接字,它在python 3.3.2上使用了cherrypy 3.2.4。当我尝试打印客户端的消息时发送到服务器,如this
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)
答案 0 :(得分:4)
返回的对象是TextMessage或BinaryMessage类型,因此您无法直接将其强制转换为字符串。要获取有效负载(在本例中为字符串),您需要访问数据属性:
像这样:
def received_message(self, m):
if m.is_text:
recvStr = m.data.decode("utf-8")
print(recvStr)
希望这是可用的。