|
|
@@ -124,149 +124,149 @@ class TelegramApiMessageAlert(BaseApiMessageSubscribe):
|
|
|
self.send_message('[%s%s] %s' % (ts, source, message))
|
|
|
|
|
|
|
|
|
-from websocket_server import WebsocketServer
|
|
|
-from ws.ws_server import BaseWebSocketServerWrapper
|
|
|
-
|
|
|
-class APIWebSocketServer(BaseWebSocketServerWrapper, Subscriber):
|
|
|
-
|
|
|
- def __init__(self, name, kwargs):
|
|
|
-
|
|
|
- BaseWebSocketServerWrapper.__init__(self, name, kwargs)
|
|
|
- self.clients = {}
|
|
|
-
|
|
|
- def loop_forever(self):
|
|
|
- pass
|
|
|
-
|
|
|
- def encode_message(self, event_type, content):
|
|
|
- return json.dumps({'event': event_type, 'value': content})
|
|
|
-
|
|
|
- def new_client(self, client, server):
|
|
|
- BaseWebSocketServerWrapper.new_client(self, client, server)
|
|
|
- self.clients[client['id']] = client
|
|
|
- self.clients[client['id']]['request'] = {}
|
|
|
-
|
|
|
-
|
|
|
- server.send_message(client, '%s' % client)
|
|
|
-
|
|
|
- # Called for every client disconnecting
|
|
|
- def client_left(self, client, server):
|
|
|
- BaseWebSocketServerWrapper.client_left(self, client, server)
|
|
|
- del self.clients[client['id']]
|
|
|
-
|
|
|
-
|
|
|
- # Called when a client sends a message1
|
|
|
- def message_received(self, client, server, message):
|
|
|
- BaseWebSocketServerWrapper.message_received(self, client, server, message)
|
|
|
- print '%s %s %s' % (client, server, message)
|
|
|
-
|
|
|
-
|
|
|
- def handle_tws_event(self, **param):
|
|
|
- print "APIWebSocketServer received tws events forwarded by gw"
|
|
|
-
|
|
|
- def update(self, event, **param):
|
|
|
- if event == 'orderStatus':
|
|
|
- self.handle_tws_event(**param)
|
|
|
- elif event == 'openOrder':
|
|
|
- self.handle_tws_event(**param)
|
|
|
- elif event == 'openOrderEnd':
|
|
|
- self.handle_tws_event(**param)
|
|
|
- elif event == 'error':
|
|
|
- try:
|
|
|
- id = param['id']
|
|
|
- if id <> -1:
|
|
|
- self.handle_event(**param)
|
|
|
- except:
|
|
|
- logging.error('OrderBook ERROR: in processing tws error event %s' % param)
|
|
|
- return
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-import websocket
|
|
|
-import thread, time
|
|
|
-from threading import Thread
|
|
|
-class APIClient():
|
|
|
-
|
|
|
- def __init__(self):
|
|
|
-
|
|
|
- self.ws = websocket.WebSocketApp("ws://localhost:9001",
|
|
|
- on_message = self.on_message,
|
|
|
- on_error = self.on_error,
|
|
|
- on_close = self.on_close,
|
|
|
- on_open = self.on_open)
|
|
|
- #self.ws.on_open = self.on_open
|
|
|
- self.stop = False
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- def run_forever(self):
|
|
|
- self.ws.run_forever()
|
|
|
-
|
|
|
- def on_message(self, message):
|
|
|
- print 'apiclient recv %s' % message
|
|
|
-
|
|
|
- def on_error(self, error):
|
|
|
- print error
|
|
|
-
|
|
|
- def on_close(self):
|
|
|
- print "### closed ###"
|
|
|
-
|
|
|
-
|
|
|
- def set_stop(self):
|
|
|
- self.stop = True
|
|
|
-
|
|
|
-
|
|
|
- def request_push_updates(self, request_type=None, fn_name=None ):
|
|
|
- self.ws.send(json.dumps({'request_type': request_type, 'fn_name': fn_name}))
|
|
|
-
|
|
|
- def on_open(self): #, ws):
|
|
|
-
|
|
|
-
|
|
|
- def run(*args):
|
|
|
- while not self.stop:
|
|
|
- time.sleep(1)
|
|
|
- self.ws.close()
|
|
|
- print "thread terminating..."
|
|
|
- thread.start_new_thread(run, ())
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-def order_status():
|
|
|
- pass
|
|
|
-
|
|
|
-if __name__ == '__main__':
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- logging.basicConfig(**{'level': logging.INFO, 'filemode': 'w', 'filename':'/tmp/api.log'})
|
|
|
- logging.info('started...')
|
|
|
-
|
|
|
-
|
|
|
- aws = APIWebSocketServer('aws', {'ws_port': 9001})
|
|
|
-
|
|
|
- def run_background():
|
|
|
- aws.server.run_forever()
|
|
|
-
|
|
|
- t = Thread(target=run_background)
|
|
|
- t.start()
|
|
|
-
|
|
|
- ac = APIClient()
|
|
|
- def run_apiclient():
|
|
|
- ac.run_forever()
|
|
|
-
|
|
|
- s = Thread(target=run_apiclient)
|
|
|
- s.start()
|
|
|
-
|
|
|
-
|
|
|
- f_info = {'order_status': order_status}
|
|
|
- ac.request_push_updates('order_status', 'order_status')
|
|
|
+# from websocket_server import WebsocketServer
|
|
|
+# from ws.ws_server import BaseWebSocketServerWrapper
|
|
|
+#
|
|
|
+# class APIWebSocketServer(BaseWebSocketServerWrapper, Subscriber):
|
|
|
+#
|
|
|
+# def __init__(self, name, kwargs):
|
|
|
+#
|
|
|
+# BaseWebSocketServerWrapper.__init__(self, name, kwargs)
|
|
|
+# self.clients = {}
|
|
|
+#
|
|
|
+# def loop_forever(self):
|
|
|
+# pass
|
|
|
+#
|
|
|
+# def encode_message(self, event_type, content):
|
|
|
+# return json.dumps({'event': event_type, 'value': content})
|
|
|
+#
|
|
|
+# def new_client(self, client, server):
|
|
|
+# BaseWebSocketServerWrapper.new_client(self, client, server)
|
|
|
+# self.clients[client['id']] = client
|
|
|
+# self.clients[client['id']]['request'] = {}
|
|
|
+#
|
|
|
+#
|
|
|
+# server.send_message(client, '%s' % client)
|
|
|
+#
|
|
|
+# # Called for every client disconnecting
|
|
|
+# def client_left(self, client, server):
|
|
|
+# BaseWebSocketServerWrapper.client_left(self, client, server)
|
|
|
+# del self.clients[client['id']]
|
|
|
+#
|
|
|
+#
|
|
|
+# # Called when a client sends a message1
|
|
|
+# def message_received(self, client, server, message):
|
|
|
+# BaseWebSocketServerWrapper.message_received(self, client, server, message)
|
|
|
+# print '%s %s %s' % (client, server, message)
|
|
|
+#
|
|
|
+#
|
|
|
+# def handle_tws_event(self, **param):
|
|
|
+# print "APIWebSocketServer received tws events forwarded by gw"
|
|
|
+#
|
|
|
+# def update(self, event, **param):
|
|
|
+# if event == 'orderStatus':
|
|
|
+# self.handle_tws_event(**param)
|
|
|
+# elif event == 'openOrder':
|
|
|
+# self.handle_tws_event(**param)
|
|
|
+# elif event == 'openOrderEnd':
|
|
|
+# self.handle_tws_event(**param)
|
|
|
+# elif event == 'error':
|
|
|
+# try:
|
|
|
+# id = param['id']
|
|
|
+# if id <> -1:
|
|
|
+# self.handle_event(**param)
|
|
|
+# except:
|
|
|
+# logging.error('OrderBook ERROR: in processing tws error event %s' % param)
|
|
|
+# return
|
|
|
+#
|
|
|
+#
|
|
|
+#
|
|
|
+# import websocket
|
|
|
+# import thread, time
|
|
|
+# from threading import Thread
|
|
|
+# class APIClient():
|
|
|
+#
|
|
|
+# def __init__(self):
|
|
|
+#
|
|
|
+# self.ws = websocket.WebSocketApp("ws://localhost:9001",
|
|
|
+# on_message = self.on_message,
|
|
|
+# on_error = self.on_error,
|
|
|
+# on_close = self.on_close,
|
|
|
+# on_open = self.on_open)
|
|
|
+# #self.ws.on_open = self.on_open
|
|
|
+# self.stop = False
|
|
|
+#
|
|
|
+#
|
|
|
+#
|
|
|
+# def run_forever(self):
|
|
|
+# self.ws.run_forever()
|
|
|
+#
|
|
|
+# def on_message(self, message):
|
|
|
+# print 'apiclient recv %s' % message
|
|
|
+#
|
|
|
+# def on_error(self, error):
|
|
|
+# print error
|
|
|
+#
|
|
|
+# def on_close(self):
|
|
|
+# print "### closed ###"
|
|
|
+#
|
|
|
+#
|
|
|
+# def set_stop(self):
|
|
|
+# self.stop = True
|
|
|
+#
|
|
|
+#
|
|
|
+# def request_push_updates(self, request_type=None, fn_name=None ):
|
|
|
+# self.ws.send(json.dumps({'request_type': request_type, 'fn_name': fn_name}))
|
|
|
+#
|
|
|
+# def on_open(self): #, ws):
|
|
|
+#
|
|
|
+#
|
|
|
+# def run(*args):
|
|
|
+# while not self.stop:
|
|
|
+# time.sleep(1)
|
|
|
+# self.ws.close()
|
|
|
+# print "thread terminating..."
|
|
|
+# thread.start_new_thread(run, ())
|
|
|
+#
|
|
|
+#
|
|
|
+#
|
|
|
+# def order_status():
|
|
|
+# pass
|
|
|
+#
|
|
|
+# if __name__ == '__main__':
|
|
|
+#
|
|
|
+#
|
|
|
+#
|
|
|
+#
|
|
|
+# logging.basicConfig(**{'level': logging.INFO, 'filemode': 'w', 'filename':'/tmp/api.log'})
|
|
|
+# logging.info('started...')
|
|
|
+#
|
|
|
+#
|
|
|
+# aws = APIWebSocketServer('aws', {'ws_port': 9001})
|
|
|
+#
|
|
|
+# def run_background():
|
|
|
+# aws.server.run_forever()
|
|
|
+#
|
|
|
+# t = Thread(target=run_background)
|
|
|
+# t.start()
|
|
|
+#
|
|
|
+# ac = APIClient()
|
|
|
+# def run_apiclient():
|
|
|
+# ac.run_forever()
|
|
|
+#
|
|
|
+# s = Thread(target=run_apiclient)
|
|
|
+# s.start()
|
|
|
#
|
|
|
#
|
|
|
-# websocket.enableTrace(True)
|
|
|
-# ws = websocket.WebSocketApp("ws://localhost:9001",
|
|
|
-# on_message = on_message,
|
|
|
-# on_error = on_error,
|
|
|
-# on_close = on_close)
|
|
|
-# ws.on_open = on_open
|
|
|
-# ws.run_forever()
|
|
|
+# f_info = {'order_status': order_status}
|
|
|
+# ac.request_push_updates('order_status', 'order_status')
|
|
|
+# #
|
|
|
+# #
|
|
|
+# # websocket.enableTrace(True)
|
|
|
+# # ws = websocket.WebSocketApp("ws://localhost:9001",
|
|
|
+# # on_message = on_message,
|
|
|
+# # on_error = on_error,
|
|
|
+# # on_close = on_close)
|
|
|
+# # ws.on_open = on_open
|
|
|
+# # ws.run_forever()
|
|
|
#
|