【问题标题】:Sending message to server using python SocketIO使用 python SocketIO 向服务器发送消息
【发布时间】:2016-03-24 02:38:49
【问题描述】:

我有一个 python 客户端尝试使用 SocketIO 向服务器发送消息的情况。我正在使用 sock.emit 发送 json 消息,如下所示

    sock = SocketIO(url, None, ...)
    message = {'ob': 'house',
               'ids': ['54fjadb70f9756','39f1ax451f6567']}
    self.sock.emit(message)

服务器期望如下:

     {"ob":"house","ids":['54fjadb70f9756','39f1ax451f6567']}

服务器当前收到以下消息:

    {"args": [], "name": "{\"ids\": [\"54fjadb70f9756\", \"39f1ax451f6567\"], \"ob\": \"house\"}"}

然后抱怨一条无效消息。

我将如何发送消息以便服务器按预期接收它,即我指定的原始消息结构?当我发送它时,似乎emit正在改变消息的结构,是否可以覆盖和更改emit,使其保留原始消息结构?那么我该怎么做呢?

【问题讨论】:

    标签: python-2.7 socket.io


    【解决方案1】:

    Socket.io .emit() 接受两个参数。第一个参数是一个消息名称,它应该是一个纯字符串。第二个参数是可选的,可以是 JSON 编码的数据。

    因此,您尝试将数据作为消息名称发送。那不管用。您需要创建一个消息名称并将数据作为该消息名称的参数发送。

    sock = SocketIO(url, None, ...)
    message = {'ob': 'house',
               'ids': ['54fjadb70f9756','39f1ax451f6567']}
    sock.emit("someMessageName", message)
    

    然后,在服务器上,您需要有一个针对该特定消息名称的侦听器,然后您可以在调用该消息侦听器时接收数据。

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多