我正在使用flask SocketIO作为服务器。 当我将服务器推送到heroku时,它在计算机中运行时的运行方式有所不同。
因此,在我的hello函数中,我尝试打印出客户端的长度。 结果是1,2,然后变成0。 但是在我的本地主机中,客户端的数量将正确增加。 我猜heroku会经常重启应用程序吗?
我使用SocketIO作为客户端,并使用下面的函数向服务器发送句子。 但是在heroku上我无法得到响应。
def sendMsg():
print('send')
sio.emit('client msg', '我的訊息')
我还尝试使用_thread计数经过的时间,但结果始终为0。
from flask_socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO( app )
clients = {}
class client:
def __init__(self,sid):
self.sid = sid
self.connected = True
def emit(self, event, data):
emit(event, data, room=self.sid)
@app.route( '/' )
def hello():
# return render_template( './ChatApp.html' )
global clients
return str(len(clients))
def messageRecived():
print( 'message was received!!!' )
#Add connected client
@socketio.on( 'connected' )
def client_connected():
print ("%s connected" % (request.sid))
global clients
clients[request.sid]= client(request.sid)
clients[request.sid].emit('response', {'sid':request.sid,'connction':clients[request.sid].connected})
@socketio.on( 'client msg' )
def client_message( msg ):
MSG = str(request.sid) + " 說: "+str(msg)
print(MSG)
socketio.emit('response',MSG)
if __name__ == '__main__':
socketio.run( app, debug = True )