我有一个Web应用程序,需要持续显示浏览器后端进行的操作。我一直试图在Flask中使用socket.io。但我需要从我的项目中的其他Python模块获取数据。所以,我试图在Flask和外部模块之间建立一个套接字连接,从中我将获得要在浏览器上显示的数据(没有任何延迟)。烧瓶中的Socket.io:来自外部源的数据
@socketio.on('my event')
def server(message):
s = socket.socket()
print "Socket successfully created"
port = 12345
s.bind(('', port))
print "socket binded to %s" %(port)
s.listen(5)
print "socket is listening"
while True:
c, addr = s.accept()
print 'Got connection from', addr
print c.recv(1024)
emit('my response', {'data': c.recv(1024)})
c.close()
print c.recv(1024)
正在控制台上打印数据。但相同的数据没有反映在浏览器上。它抛出这个错误 -
error: [Errno 98] Address already in use
这意味着它print c.recv(1024)
后未能在emit
。可能会出现什么问题? 我的第一个疑问是如果这种连接是允许的。我的意思是,我们可以在Flask中的socket.io中创建套接字连接吗? 否则,连续使用Flask在浏览器上显示后端操作的最佳解决方案是什么?我也有Django的Web应用程序。任何与Flask或Django使用案例的解决方案都将被赞赏(最好是Django)。
非常感谢Miguel。 – phanny