我之前从未做过python编程,所以我希望你们能在我的代码中给我一些反馈。
我有一个节点js tcp服务器,必须接收一个json“request”对象,然后异步响应其他几个json对象。
我需要python一个接一个地读取所有json,然后返回回调,直到服务器发送一个表示响应“结束”的对象。
我是否正确地做到了?
def requestServer(onData, options={}):
opts = {'command': 'request'}
socket = connect()
opts.update(options)
socket.send(json.dumps(opts)) # send the json request to the server
while(True):
data = socket.recv(1024*5) #reads back any response
if(data):
data = json.loads(data)
if('responseType' in data and data['responseType'] == 'end'):
break # end of response
else:
onData(data)
time.sleep(0.1)
socket.close()
def connect():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 8888))
return s
然后我可以像这样使用它:
def onData(data):
print("Data received from server: ")
print(data)
requestServer(onData, {'some': 'options'})