3.初始化

优质
小牛编辑
122浏览
2023-12-01

接下来的代码例子揭示了,怎样去把Flask-SocketIO引入到Flask应用:

  from flask import Flask, render_template
  from flask_socketio import SocketIO

  app = Flask(__name__)
  app.configp['SECRET_KEY'] = 'secret!'
  socketio = SocketIO(app)

  if __name__ == '__main__':
    socketio.run(app)

init_app()风格的初始化也是支持的。注意网络服务器的启动。函数socketio.run()封装了网络服务器的启动部分,并且代替了flask开发服务器的标准启动语句app.run()。当应用在debug模式下,Werkzeug开发服务器也是在socketio.run()中被合理地应用和配置。如果可用的话,在生产模式下eventlet网络服务器也是被应用的,否则,gevent网络服务器将会被启用。如果eventlet和gevent都没有被安装,那么将会使用Werkzeug开发网络服务器。

在flask 0.11中被引入的可点击命令行界面也是被支持的。这个扩展提供了一个新版的flask run命令,适合启动一个Socket.IO服务器。用法示例:

FLASK_APP = my_app flask run

这个应用只能为那种连接到客户端的页面服务,并且客户端还需引用Socket.IO库并且建立一个连接:

<script type="text/javascript" scr="//cdn.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>

<script type="text/javascript" charset="utf-8">
  var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);
  socket.on('connect', function() {
    socket.emit('my event', {data: 'I\'m connected!'});
  });
</script>