阅读 Python 3 上的 TextMessage ws4py



我使用 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)

希望这是可用的。

相关内容

  • 没有找到相关文章

最新更新