【发布时间】:2018-12-07 09:12:17
【问题描述】:
我正在创建一个套接字客户端并尝试获取一些数据。为此,我需要通过套接字连接到 Web 服务器,服务器实际上创建了另一个套接字,该套接字侦听并等待数据,然后将数据发送回客户端。
我对下面代码的问题是我的套接字客户端不等待来自服务器的传入数据,而只接受空数据。
如何使用 Python 套接字等待来自服务器的非空数据?
我的代码:
import sys
import json
import socketIO_client
import time
host = 'https://SOME_URL'
socketIO = socketIO_client.SocketIO(host, params={"email" : "edmund@gmail.com"})
def on_connect(*args):
print "socket.io connected"
def on_disconnect(*args):
print "socketIO diconnected"
socketIO.on('connect', on_connect)
socketIO.on('disconnect', on_disconnect)
def on_response_state(*args):
print args # Prints ()
socketIO.emit('receive_state',on_response_state)
socketIO.wait_for_callbacks(seconds=3)
【问题讨论】:
-
为什么不需要密码参数?我认为您需要提供一些服务器上下文,问题似乎不仅仅是“需要一个while循环”
-
@bunbun 您在哪里看到密码参数?我只需要一个电子邮件参数
-
你告诉它在继续最后一行之前最多等待 3 秒,将其更改为
socketIO.wait()以等待响应。 -
Software_delay,block_wait,block_read永远不会解决您的问题!需要读取一些 header 数据/字节(cosheader include content-length)和 wait_until **如果收到 last_byte **(否则已经收到损坏的数据)。 -
@JamesKent socketIO.wait() 与等待数据无关,它只保证socket连接到服务器的持续时间