MCPcopy Index your code
hub / github.com/python-websockets/websockets / Server

Class Server

src/websockets/sync/server.py:217–313  ·  view source on GitHub ↗

WebSocket server returned by :func:`serve`. This class mirrors the API of :class:`~socketserver.BaseServer`, notably the :meth:`~socketserver.BaseServer.serve_forever` and :meth:`~socketserver.BaseServer.shutdown` methods, as well as the context manager protocol. Args:

Source from the content-addressed store, hash-verified

215
216
217class Server:
218 """
219 WebSocket server returned by :func:`serve`.
220
221 This class mirrors the API of :class:`~socketserver.BaseServer`, notably the
222 :meth:`~socketserver.BaseServer.serve_forever` and
223 :meth:`~socketserver.BaseServer.shutdown` methods, as well as the context
224 manager protocol.
225
226 Args:
227 socket: Server socket listening for new connections.
228 handler: Handler for one connection. Receives the socket and address
229 returned by :meth:`~socket.socket.accept`.
230 logger: Logger for this server.
231 It defaults to ``logging.getLogger("websockets.server")``.
232 See the :doc:`logging guide <../../topics/logging>` for details.
233
234 """
235
236 def __init__(
237 self,
238 socket: socket.socket,
239 handler: Callable[[socket.socket, Any], None],
240 logger: LoggerLike | None = None,
241 ) -> None:
242 self.socket = socket
243 self.handler = handler
244 if logger is None:
245 logger = logging.getLogger("websockets.server")
246 self.logger = logger
247 if sys.platform != "win32":
248 self.shutdown_watcher, self.shutdown_notifier = os.pipe()
249
250 def serve_forever(self) -> None:
251 """
252 See :meth:`socketserver.BaseServer.serve_forever`.
253
254 This method doesn&#x27;t return. Calling :meth:`shutdown` from another thread
255 stops the server.
256
257 Typical use::
258
259 with serve(...) as server:
260 server.serve_forever()
261
262 """
263 poller = selectors.DefaultSelector()
264 try:
265 poller.register(self.socket, selectors.EVENT_READ)
266 except ValueError: # pragma: no cover
267 # If shutdown() is called before poller.register(),
268 # the socket is closed and poller.register() raises
269 # ValueError: Invalid file descriptor: -1
270 return
271 if sys.platform != "win32":
272 poller.register(self.shutdown_watcher, selectors.EVENT_READ)
273
274 while True:

Callers 1

serveFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…