我正在运行 SocketIO 服务器,例如:
from socketio.server import SocketIOServer
server = SocketIOServer(
('127.0.0.1', '8000'),
resource='socket.io',
)
server.serve_forever()
然后我有一个命名空间:
class Foo(BaseNamespace, BroadcastMixin):
def on_msg(self, data):
self.emit(data['msg'])
最后,我有一条路线,例如:
module = Blueprint('web', __name__)
@module.route('/')
def index():
pkt = dict(
type='event',
name='new_visitor',
endpoint='/foo'
)
## HERE: How do I get the "socket" to look through each connection
#for sessid, socket in blah.socket.server.sockets.iteritems():
# socket.send_packet(pkt)
return render_template('index.html')
所以,上面评论的部分是我有问题的地方。
到目前为止我所做的:
- 我深入研究 gevent-socketio 代码,发现套接字在那里被跟踪。但我不确定下一步会是什么。
- 注意到,在 Flask 中,
request.environ
有一个socketio
对应于对象的值。但是,这仅适用于 SocketIO 请求。
任何线索或提示将不胜感激。