实现并提供Bokeh服务器和客户机之间通信的消息协议。
Protocol
为Bokeh服务器消息协议提供一个消息工厂。
assemble
创建一个由json片段组装的消息实例。
header_json (JSON) --
JSON
metadata_json (JSON) --
content_json (JSON) --
消息
create
为给定类型创建新的消息实例。
msgtype (str) --
提供与处理Bokeh协议消息有关的命名异常。
MessageError
指示构造Bokeh消息对象时出错。
此异常通常表示消息的JSON片段根本无法解码。
ProtocolError
指示处理有线协议片段时出错。
此异常表示无法正确组装解码的消息片段。
ValidationError
指示验证连线协议片段时出错。
此异常通常指示在预期文本片段时收到二进制消息片段,反之亦然。
为所有Bokeh服务器协议消息类型提供基类。
Boker消息由一系列JSON片段组成。消息被指定为类似Python-JSON的数据,其一般形式为:
[ # these are required b'{header}', # serialized header dict b'{metadata}', # serialized metadata dict b'{content}, # serialized content dict # these are optional, and come in pairs; header contains num_buffers b'{buf_header}', # serialized buffer header dict b'array' # raw buffer payload data ... ]
这个 header 碎片的形式如下:
header
header = { # these are required 'msgid' : <str> # a unique id for the message 'msgtype' : <str> # a message type, e.g. 'ACK', 'PATCH-DOC', etc # these are optional 'num_buffers' : <int> # the number of additional buffers, if any }
这个 metadata 片段可以包含任意信息。Bokeh不会出于任何目的对其进行处理,但可能对外部监控或仪器工具有用。
metadata
这个 content 片段由特定的消息类型定义。
content
Message
消息基类封装了创建、组装和验证Bokeh服务器消息的完整性。此外,它还提供挂钩
__init__
从标头、元数据和内容字典初始化新邮件。
要从现有的JSON片段组装消息,请使用 assemble 方法。
要使用自动生成的邮件头创建新邮件,请使用子类 create 方法。
header (JSON-like) --
metadata (JSON-like) --
content (JSON-like) --
add_buffer
将缓冲区标头和有效负载与此消息关联。
buf_header (JSON) -- 缓冲头
buf_payload (JSON or bytes) -- 缓冲有效载荷
没有
MessageError --
创建一个由JSON片段组合而成的新消息。
消息子类
assemble_buffer
添加从套接字读取的缓冲头和有效负载。
这与add_buffer()不同,因为我们验证的是头的num_buffers,而不是填充头。
ProtocolError --
create_header
返回消息头片段dict。
request_id (str or None) -- 此邮件答复的邮件的邮件ID
消息头
dict
send
在给定的连接上发送消息。
conn (WebSocketHandler) -- 发送消息的WebSocketHandler
发送的字节数
int
write_buffers
将任何缓冲头和有效负载写入给定连接。
conn (object) -- 任何对象都可以是 write_message 方法。通常是龙卷风 WSHandler 或 WebSocketClientConnection
write_message
WSHandler
WebSocketClientConnection
locked (bool) --
complete
返回是否存在消息的所有必需部分。
如果消息完整,则为True,否则为False
bool
ACK
ack
定义 ACK 用于确认成功连接到Bokeh服务器的客户端的消息。
这个 content 此邮件的片段为空。
创建一个 ACK 消息
任何关键字参数都将被放入消息中 metadata 按原样分割。
ERROR
error
定义 ERROR 用于将错误情况报告回Bokeh服务器的消息。
这个 content 此消息的片段具有以下形式:
{ 'text' : <error message text> # this is optional 'traceback' : <traceback text> }
创建一个 ERROR 消息
request_id (str) -- 引发错误的消息的消息ID。
text (str) -- 任何错误消息或回溯等的文本。
任何其他关键字参数都将被放入消息中 metadata 按原样分割。
OK
ok
定义 OK 确认成功处理前一条消息的消息。
创建一个 OK 消息
request_id (str) -- 触发OK的消息的消息ID。
PATCH-DOC
patch_doc
定义 PATCH-DOC 用于在远程文档之间发送文档修补程序事件的消息。
{ 'events' : <protocol document events> 'references' : <model references> }
apply_to_document
创建一个 PATCH-DOC 消息
events (list) -- 要应用于文档的修补程序事件列表
process_document_events
创建一个JSON字符串,描述要应用的修补程序以及任何可选缓冲区。
events -- 要转换为修补程序的事件列表
JSON字符串,可应用于对obj以及任何可选缓冲区进行给定更新
str, list
PULL-DOC-REPLY
pull_doc_reply
定义 PULL-DOC-REPLY 用于答复来自客户端的文档拉取请求的消息
{ 'doc' : <Document JSON> }
创建一个 PULL-DOC-REPLY 消息
request_id (str) -- 发出拉取请求的消息的消息ID
document (Document) -- 要答复的文档
PULL-DOC-REQ
pull_doc_req
定义 PULL-DOC-REQ 用于请求Bokeh服务器用新Bokeh文档答复的消息。
创建一个 PULL-DOC-REQ 消息
PUSH-DOC
push_doc
定义 PUSH-DOC 用于将文档从客户端推送到Bokeh服务器的消息。
push_to_document
SERVER-INFO-REPLY
server_info_reply
定义 SERVER-INFO-REPLY 用于答复来自客户端的服务器信息请求的消息。
{ 'version_info' : { 'bokeh' : <bokeh library version> 'server' : <bokeh server version> } }
创建一个 SERVER-INFO-REPLY 消息
request_id (str) -- 发出info请求的消息的消息ID
SERVER-INFO-REQ
server_info_req
定义 SERVER-INFO-REQ 请求Bokeh服务器的消息提供了有关其自身的信息。
创建一个 SERVER-INFO-REQ 消息
将websocketwire消息片段组装成可以处理的完整Bokeh服务器消息对象。
Receiver
接收wire消息片段并组装完整的Bokeh服务器消息对象。
论 MessageError 或 ValidationError ,则接收器将重置其状态并尝试使用新消息。
这个 片段 接收的内容可以是字节或unicode,具体取决于传输的语义(WebSocket同时允许两者)。
使用特定的Bokeh协议配置接收器。
protocol (Protocol) -- 一个Bokeh协议对象,用于组装收集的消息片段。
consume
使用单个协议消息片段。
fragment (JSON) -- 要汇编的消息片段。当一个完整的消息被组装时,接收者状态将被重置以开始使用一个新的消息。