-->

how to send json header via python tornado in a we

2019-09-04 08:46发布

问题:

#!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()

here is my code sample i am accepting json in the message getting its instance b and send json again to the client.but client is treating header as normal string.

回答1:

Websockets does not require headers. Just send your json as string.