如何通过python tornado在websocket中发送json头?

时间:2013-06-13 08:07:10

标签: python websocket tornado

#!C:/Python27/python.exe -u 
import tornado
import tornado.websocket
import tornado.wsgi
import tornado.web
import tornado.httpserver
import tornado.tcpserver
import json

from py2neo import neo4j, cypher
graph_db = neo4j.GraphDatabaseService()
class request(tornado.web.RequestHandler):
    def  sr():
        self.set_header('Content-type','application/json')
class ChatWebSocket(tornado.websocket.WebSocketHandler):
    clients = []
    def open(self):
        ChatWebSocket.clients.append(self)
    def on_message(self, message):
         query = "START a=node:node_auto_index(uid='twitter') CREATE a-[:ch]-(t{con:'"+message+"'}) RETURN a"
     data, metadata = cypher.execute(graph_db, query)
         for client in ChatWebSocket.clients:
         print(client)
         t=json.loads(message)
         client.write_message('Content-type:application/json\n') 
         client.write_message(json.dumps({'a':t['b']}))
         print(t['b'])
    def on_close(self):
         ChatWebSocket.clients.remove(self)
    tornado_app = tornado.web.Application([
    (r'/websocket', ChatWebSocket),
    (r'.*', tornado.web.FallbackHandler)
    ])
 tornado_app.listen(5094)
tornado.ioloop.IOLoop.instance().start()

这是我的代码示例我在消息中接受json获取其实例b 并将json再次发送到client.but客户端将标头视为普通字符串。

1 个答案:

答案 0 :(得分:0)

Websockets不需要标头。只需将您的json作为字符串发送。