我有一个开发,单击客户端网页上的按钮启动服务器以移动通过 USB 连接到服务器盒的电机。我希望服务器在收到客户端请求时发出一条消息,以确认正在发生移动,使电机移动,然后一旦电机处于其最终位置并停止,服务器应该发出一条新消息达到那个效果。
我想我可以通过让客户端对页面上的文本进行第一次更改来解决这个问题,然后在移动完成时服务器将其重置,但是当我使用睡眠(或等效的)时,我会收到服务器连接错误检查电机是否仍在移动到新位置)。
有没有解决的办法?
服务器端
def pos1_message(message):
print '\rrow 1 buttons clicked: ',
received = "Moving to position %s' %message['data']
print received
emit('server response', {'data': received)
time.sleep(5) #this mimics the time taken for the motor to move. It
emit('server response', {'data': 'System ready'})
客户端
socket.on('server response', function(msg) {
$('#log').append('<br>' + $('<div/>').text('Received: '+ msg.data).html());
});
编辑
我已经将复杂的项目简化为最简单的案例,并且它确实有效。我让客户端更改文本,然后发出,然后服务器发出并使文本变回。所有格式(文本更改,包括文本框颜色的所有格式)都有效,但我仍然遇到以下错误:
error: [Errno 10053] An established connection was aborted by the software in your host machine.
其次是其他一些细节。看起来好像它确实做了我需要的,有没有办法处理这个没有显示的特定消息?