首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Comm将json数据发送到木星笔记本前端

通过Comm将json数据发送到木星笔记本前端
EN

Stack Overflow用户
提问于 2015-11-21 16:28:58
回答 1查看 1.5K关注 0票数 3

我想把一些任意的数据发送到木星笔记本前端。

根据http://jupyter-client.readthedocs.org/en/latest/messaging.html#opening-a-comm的说法,Comm协议是一种发送自定义消息类型的方式,而无需求助于黑客攻击,比如使用execute_request msg_type。

在Python方面,我有

代码语言:javascript
复制
from ipykernel.comm import Comm 
c=Comm()
#c.open()
#c.send(data={'foo':'bar'})

但是,在JavaScript端,我在初始化Comm()时出现了一个错误:

代码语言:javascript
复制
Error: Class comm not found in registry at http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:12751:28 at Object.load_class (http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:12736:16) at CommManager.comm_open (http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:21802:37) at x.isFunction.i (http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:89:5488) at Kernel._handle_iopub_message (http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:23101:20) at Kernel._finish_ws_message (http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:22936:29) at http://localhost:8888/static/notebook/js/main.min.js?v=40e10638fcf65fc1c057bff31d165e9d:22926:44

这个错误意味着什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-21 17:03:11

明白了- IPyWidgets笔记本扩展提供了如何这样做的很好的例子:https://github.com/ipython/ipywidgets

在联合来文方面:

代码语言:javascript
复制
var comm_manager=Jupyter.notebook.kernel.comm_manager
var handle_msg=function(msg){
    console.log('got msg'); 
    console.log(msg)
}

comm_manager.register_target('myTarget', function(comm,msg){
    console.log('opened comm');
    console.log(msg);
    // register callback
    comm.on_msg(handle_msg)
})

在Python里,

代码语言:javascript
复制
from ipykernel.comm import Comm 
c=Comm(target_name='myTarget',data={})
c.send('hello')

浏览器控制台中的响应:

代码语言:javascript
复制
opened comm
VM4511:3 Object {parent_header: Object, msg_type: "comm_open", msg_id: "331ba915-0b45-4421-b869-7d9794d72113", content: Object, header: Object…}
VM4464:2 got msg
VM4464:2 Object {parent_header: Object, msg_type: "comm_msg", msg_id: "9fdc83c8-49c5-4629-aa43-7ddf92cb4f5e", content: Object, header: Object…}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33845775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档