from tornado import websocket, ioloop, gen, escape class SocketClient(): def __init__(self): self.headers = httputil.HTTPHeaders() self.headers['Content-Type'] = 'application/json' self.request = httpclient.HTTPRequest( url = "wss://some.url", validate_cert = False, client_key = "client-key.pem", client_cert = "client-cert.pem", connect_timeout = 60, request_timeout = 60) def connect(self, connCallback, msgCallback): self.request.headers = self.headers self.__msgcallback = msgCallback self.__conncallback = connCallback wssConn = websocket.WebSocketClientConnection(ioloop.IOLoop.current(), self.request) wssConn.connect_future.add_done_callback(self.__on_connResult) def __on_connResult(self, conn): if conn.exception() == None: self.__wssConn = conn.result() self.__conncallback(True) self.__read() else: print(conn.exception().args) self.__conncallback(False) def send(self, data): self.__wssConn.write_message(escape.utf8(json.dumps(data))) @gen.coroutine def __read(self): while True: msg = yield self.__wssConn.read_message() if msg is None: self.__conncallback(False) break self.__msgcallback(msg)
29 Ağustos 2013 Perşembe
Tornado websocket client
Tornado'nun sunucu hizmetleri ile ilgili bir sürü örnek var ama istemci olarak hele hele WebSocket için neredeyse hiçbir örnek bulamadım internette, onun için buraya yazalım dursun, bir gün birine lazım olur.
Kaydol:
Kayıt Yorumları (Atom)
her clientin birserveri olur onu boş bırakman saçma olmş :D
YanıtlaSilWeb client (js) ve Tornado Server+client komple bir örnek yazacağım ama bakalım ne zaman...
YanıtlaSil