python-socketio文档6--(API App、Namespace)

ConnectionRefusedError

class socketio.exceptions.ConnectionRefusedError(*args)

        连接被拒绝异常。

当连接未被接受时,此异常可在连接处理程序中抛出。异常附带的位置参数会随错误数据包返回给客户端。

WSGIApp

class socketio.WSGIApp(socketio_app, wsgi_app=None, static_files=None, socketio_path='socket.io')

        用于 Socket.IO 的 WSGI 中间件。

此中间件将流量分发到 Socket.IO 应用程序。它还能向客户端提供静态文件列表,或者将无关的 HTTP 流量转发到另一个 WSGI 应用程序。

参数

  • socketio_app:Socket.IO 服务器,必须是 socketio.Server 类的实例。
  • wsgi_app:接收所有其他流量的 WSGI 应用程序。
  • static_files:包含静态文件映射规则的字典。具体参数说明请参阅文档。
  • socketio_path:Socket.IO 应用程序应安装的端点。大多数情况下,默认值是合适的。

示例用法

import socketio
import eventlet
from . import wsgi_app

sio = socketio.Server()
app = socketio.WSGIApp(sio, wsgi_app)
eventlet.wsgi.server(eventlet.listen(('', 8000)), app)

ASGIApp

class socketio.ASGIApp(socketio_server, other_asgi_app=None, static_files=None, socketio_path='socket.io', on_startup=None, on_shutdown=None)

        用于 Socket.IO 的 ASGI 应用程序中间件。

此中间件将流量分发到 Socket.IO 应用程序。它还可以向客户端提供静态文件列表,或者将无关的 HTTP 流量转发到另一个 ASGI 应用程序。

参数

  • socketio_server:Socket.IO 服务器,必须是 socketio.AsyncServer 类的实例。
  • static_files:包含静态文件映射规则的字典。具体参数说明请参阅文档。
  • other_asgi_app:接收所有其他流量的独立 ASGI 应用程序。
  • socketio_path:Socket.IO 应用程序应安装的端点。大多数情况下,默认值是合适的。若设置为 None,所有传入流量都将定向到 Socket.IO 服务器,前提是必要的路由由其他层处理。当此选项设置为 None 时,static_files 和 other_asgi_app 将被忽略。
  • on_startup:应用程序启动时要调用的函数,可以是协程。
  • on_shutdown:应用程序关闭时要调用的函数,可以是协程。

示例用法

import socketio
import uvicorn

sio = socketio.AsyncServer()
app = socketio.ASGIApp(sio, static_files={
    '/': 'index.html',
    '/static': './public',
})
uvicorn.run(app, host='127.0.0.1', port=5000)

Middleware

class socketio.Middleware(socketio_app, wsgi_app=None, socketio_path='socket.io')

        此类已重命名为 WSGIApp,现已弃用。

ClientNamespace

class socketio.ClientNamespace(namespace=None)

        基于类的客户端命名空间的基类。

基于类的命名空间是一个包含 Socket.IO 命名空间所有事件处理程序的类。事件处理程序是类中以 on_ 为前缀的方法,例如 on_connecton_disconnecton_messageon_json 等等。

参数

  • namespa