首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SockJS中的JSON消息-Tornado

SockJS中的JSON消息-Tornado
EN

Stack Overflow用户
提问于 2012-09-14 09:39:07
回答 1查看 1.9K关注 0票数 2

在SockJS-Tornado库的on_message()方法中,我希望将JSON消息发送到客户端:有时使用send()方法发送到特定的客户端,有时使用broadcast()方法发送到一组客户端。

我想知道在发送消息之前,我是否需要自己使用类似simplejson的东西来编码字符串键字典对象。

代码语言:javascript
复制
on_message(self, message):
    ...
    data = {'type': 1, 'body': 'blah'}
    msg = json.dump(data)
    # self.send(msg) or self.broadcast(conns, msg)

或者编码部分已经由SockJS-Tornado处理了?另外,on_message()方法中的message参数是不是也是一个JSON对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-15 02:28:30

SockJS是websocket模拟层。Websockets不支持除文本和二进制数据以外的任何内容。

因此,虽然您可以通过网络发送任意python对象(sockjs-tornado将执行内部json序列化,并且不强制字符串),但出于兼容性原因,不鼓励这样做。

是的,如果使用json作为应用协议,则会发生双重编码。然而,如果你打算使用广播功能-使用优化的广播()方法,它将只对所有接收者执行一次json编码。

邮件列表中也有相关讨论:https://groups.google.com/forum/?fromgroups#!topic/sockjs/vsFvHqppq5g

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12417062

复制
相关文章

相似问题

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