提供一个会话对象,以便将外部Python客户端中的Bokeh文档服务到Bokeh服务器。
客户端会话有两个主要用途:
围绕Bokeh服务器应用程序实现自动化测试基础设施。
创建和定制Bokeh服务器应用程序的特定会话(运行 在Bokeh服务器中 )在将它们传递给特定的查看器之前。
ClientSession
表示到服务器端会话的websocket连接。
每个服务器会话存储一个文档,该文档与相应的文档保持同步 ClientSession 实例。只要连接处于打开状态,连接任一端的更新将自动传播到另一端。
ClientSession对象可以(通常应该)用作上下文管理器,以便会话正确关闭:
with pull_session(url=app_url) as mysession: # customize session here script = server_session(session_id=mysession.id, url=app_url) return render_template("embed.html", script=script, template="Flask")
如果你不使用 ClientSession 这样,你就可以确保 mysession.close() 被称为。
mysession.close()
__init__
连接到服务器上的特定命名会话的连接。
总是在创建会话后立即调用pull()或push()(直到调用它们为止 session.document 将 None )
session.document
None
这个 push_session() 和 pull_session() 函数将构造 ClientSession 一步推或拉,所以它们是获得 ClientSession .
push_session()
pull_session()
session_id (str) -- 会话的名称或无以生成会话
websocket_url (str) -- 要连接到的Websocket URL
io_loop (IOLoop, optional) -- 用于websocket的IOLoop
arguments (dict[str, str], optional) -- 将作为HTTP请求参数传递给Bokeh应用程序代码(默认值:None)的键/值字典请注意,只有在拉入新会话时才应提供该字典。如果 session_id 不是没有,或是与 session_id 已经存在,这些参数将无效。
session_id
check_connection_errors
无法建立连接时引发错误。
应在调用后使用。
没有
close
关闭与服务器的连接。
connect
连接到配置的URL处的Bokeh服务器。
force_roundtrip
强制向服务器发出往返请求/答复,有时需要这样做以避免竞争条件。主要用于测试。
在测试套件之外,这种方法会损害性能,因此不应该需要这种方法。
pull
拉取服务器的状态并将其设置为会话.document.
如果不止一次打电话,会话.document将是相同的对象实例,但其内容将被覆盖。
自动呼叫 connect() 在拉之前。
connect()
push
将给定文档推送到服务器并将其记录为会话.document.
如果多次调用此函数,则文档必须相同(或“无”表示“会话.document").
注解
自动呼叫 connect() 在推之前。
document (Document, optional) -- 将与服务器文档保持同步的文档。无需使用会话.document或创建新文档。
Document
request_server_info
询问有关服务器的信息。
服务器属性词典。
show
打开显示此会话的浏览器。
obj (LayoutDOM object, optional) -- 要显示的布局(行/列)、绘图或小部件对象。对象将被添加到会话的文档中。
browser (str, optional) -- 要显示的浏览器(默认值:无)对于支持它的系统 浏览器 参数允许指定要在哪个浏览器中显示,例如“safari”、“firefox”、“opera”、“windows default”(请参阅 webbrowser 有关更多详细信息,请参阅标准库中的模块文档)。
webbrowser
new (str, optional) -- 对于基于文件的输出,新的文件输出模式(默认:“tab”)打开或打开显示当前输出文件的浏览器窗口。如果 new 是“tab”,然后打开一个新选项卡。如果 new 是“窗口”,然后打开一个新窗口。
connected
此会话当前是否已连接。
document
A Document 它将与服务器上的相应文档保持同步。
此值在以下情况下初始化 pull() 或 push() 成功。会的 None 在那之前。
pull()
push()
id
此会话的唯一ID。
token
用于验证会话的JWT令牌。
pull_session
通过加载当前服务器端文档创建会话。
session.document 将是从服务器加载的新文档。与服务器的连接处于打开状态时,在服务器端所做的更改将应用于此文档,在客户端所做的更改将同步到服务器。
如果你不打算修改 session.document 您可能不需要使用此函数;相反,您可以直接使用 show_session() 或 server_session() 不需要先将会话的文档下载到您的进程中。如果不需要下载会话,那么避免下载会话的效率要高得多。
show_session()
server_session()
在生产场景中 session_id 对于每个浏览器选项卡应该是唯一的,这样用户就不会互相踩踏了。使用可预测的会话ID或跨用户共享会话ID既不可伸缩也不安全。
对于在一台机器上运行的笔记本, session_id 可能是人类可读的东西,比如 "default" 为了方便。
"default"
如果你允许的话 pull_session() 生成一个 session_id ,您可以使用 id 返回的属性 ClientSession .
session_id (string, optional) -- 会话的名称,None自动生成随机会话(默认值:None)
url -- (str,可选):Bokeh服务器上Bokeh应用程序的URL也可以是 "default" 将连接到默认应用程序URL
io_loop (tornado.ioloop.IOLoop, optional) -- 这个 IOLoop 用于websocket
tornado.ioloop.IOLoop
IOLoop
一个新的 ClientSession 已连接到服务器
push_session
通过将给定文档推送到服务器,覆盖任何现有的服务器端文档来创建会话。
session.document 在返回的会话中将是您提供的文档。与服务器的连接处于打开状态时,在服务器端所做的更改将应用于此文档,在客户端所做的更改将同步到服务器。
如果你允许的话 push_session() 生成一个 session_id ,您可以使用 id 返回的属性 ClientSession .
document -- (bokeh.document.document文档)要推式设置为的文档会话.document
session_id -- (string,可选)会话的名称,None自动生成随机会话(默认值:None)
io_loop -- (龙卷风.ioloop.ioloop,可选)用于websocket的IOLoop
ClientSession连接到服务器的新ClientSession
show_session
打开显示会话文档的浏览器。
如果你有来自 pull_session() 或 push_session 你可以 show_session(session=mysession) . 如果您不需要自己打开与服务器的连接,则可以通过提供 url .
show_session(session=mysession)
url
session (ClientSession, optional) -- 从中获取会话ID和服务器URL的会话如果指定此项,则不需要指定会话标识和URL