class_docstr: Used for compatibility across Tornado versions and to add write_lock
docstr: Read a message from websocket and execute a callback.
  
          
code: def read_message(
      self, callback: Callable[..., Any] | None = None
  ) -> Awaitable[None | str | bytes]:
      """Read a message from websocket and execute a callback."""
      return self._socket.read_message(callback)
  
file_path: bokeh/src/bokeh/client/websocket.py
imports: from __future__ import annotations
  import logging
  from typing import Any, Awaitable, Callable
  from tornado import locks
  from tornado.websocket import WebSocketClientConnection
label_desc: Use image node_id 3 for calling the WebSocketClientConnectionWrapper obj's underlying member method code with example usage: obj.read_message(callback) and returns: self