Python socketio.AsyncServer() Examples
The following are 6
code examples of socketio.AsyncServer().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
socketio
, or try the search function
.
Example #1
Source File: socketio.py From rasa_core with Apache License 2.0 | 5 votes |
def __init__(self, sio: AsyncServer, socketio_path, *args, **kwargs): self.sio = sio self.socketio_path = socketio_path super(SocketBlueprint, self).__init__(*args, **kwargs)
Example #2
Source File: socketio.py From rasa_core with Apache License 2.0 | 5 votes |
def blueprint(self, on_new_message): sio = AsyncServer(async_mode='sanic') socketio_webhook = SocketBlueprint(sio, self.socketio_path, 'socketio_webhook', __name__) @socketio_webhook.route("/", methods=['GET']) async def health(request): return response.json({"status": "ok"}) @sio.on('connect', namespace=self.namespace) async def connect(sid, environ): logger.debug("User {} connected to socketIO endpoint.".format(sid)) @sio.on('disconnect', namespace=self.namespace) async def disconnect(sid): logger.debug("User {} disconnected from socketIO endpoint." "".format(sid)) @sio.on('session_request', namespace=self.namespace) async def session_request(sid, data): if data is None: data = {} if 'session_id' not in data or data['session_id'] is None: data['session_id'] = uuid.uuid4().hex await sio.emit("session_confirm", data['session_id'], room=sid) logger.debug("User {} connected to socketIO endpoint." "".format(sid)) @sio.on(self.user_message_evt, namespace=self.namespace) async def handle_message(sid, data): output_channel = SocketIOOutput(sio, sid, self.bot_message_evt) if self.session_persistence: if not data.get("session_id"): logger.warning("A message without a valid sender_id " "was received. This message will be " "ignored. Make sure to set a proper " "session id using the " "`session_request` socketIO event.") return sender_id = data['session_id'] else: sender_id = sid message = UserMessage(data['message'], output_channel, sender_id, input_channel=self.name()) await on_new_message(message) return socketio_webhook
Example #3
Source File: socketio.py From rasa-for-botfront with Apache License 2.0 | 5 votes |
def __init__(self, sio: AsyncServer, socketio_path, *args, **kwargs): self.sio = sio self.socketio_path = socketio_path super().__init__(*args, **kwargs)
Example #4
Source File: socketio.py From rasa-for-botfront with Apache License 2.0 | 5 votes |
def __init__(self, sio: AsyncServer, bot_message_evt: Text) -> None: self.sio = sio self.bot_message_evt = bot_message_evt
Example #5
Source File: webchat.py From rasa-for-botfront with Apache License 2.0 | 5 votes |
def __init__( self, sio: AsyncServer, bot_message_evt: Text ) -> None: # until SocketIOOutput implement comes out self.sio = sio self.bot_message_evt = bot_message_evt
Example #6
Source File: socketio.py From rasa-for-botfront with Apache License 2.0 | 4 votes |
def blueprint( self, on_new_message: Callable[[UserMessage], Awaitable[Any]] ) -> Blueprint: # Workaround so that socketio works with requests from other origins. # https://github.com/miguelgrinberg/python-socketio/issues/205#issuecomment-493769183 sio = AsyncServer(async_mode="sanic", cors_allowed_origins=[]) socketio_webhook = SocketBlueprint( sio, self.socketio_path, "socketio_webhook", __name__ ) # make sio object static to use in get_output_channel self.sio = sio @socketio_webhook.route("/", methods=["GET"]) async def health(_: Request) -> HTTPResponse: return response.json({"status": "ok"}) @sio.on("connect", namespace=self.namespace) async def connect(sid: Text, _) -> None: logger.debug(f"User {sid} connected to socketIO endpoint.") @sio.on("disconnect", namespace=self.namespace) async def disconnect(sid: Text) -> None: logger.debug(f"User {sid} disconnected from socketIO endpoint.") @sio.on("session_request", namespace=self.namespace) async def session_request(sid: Text, data: Optional[Dict]): if data is None: data = {} if "session_id" not in data or data["session_id"] is None: data["session_id"] = uuid.uuid4().hex if self.session_persistence: sio.enter_room(sid, data["session_id"]) await sio.emit("session_confirm", data["session_id"], room=sid) logger.debug(f"User {sid} connected to socketIO endpoint.") @sio.on(self.user_message_evt, namespace=self.namespace) async def handle_message(sid: Text, data: Dict) -> Any: output_channel = SocketIOOutput(sio, self.bot_message_evt) if self.session_persistence: if not data.get("session_id"): raise_warning( "A message without a valid session_id " "was received. This message will be " "ignored. Make sure to set a proper " "session id using the " "`session_request` socketIO event." ) return sender_id = data["session_id"] else: sender_id = sid message = UserMessage( data["message"], output_channel, sender_id, input_channel=self.name() ) await on_new_message(message) return socketio_webhook