예제 #1
0
    def _sync_init_connect(self):
        """
        :param client_ver:
        :param client_id:
        :return:(ret, msg)
        """
        query_processor = self._get_sync_query_processor(
            InitConnect.pack_req, InitConnect.unpack_rsp)
        kargs = {
            'client_ver': int(SysConfig.get_client_ver()),
            'client_id': str(SysConfig.get_client_id()),
            'recv_notify': False,
        }
        ret_code, msg, content = query_processor(**kargs)

        if ret_code != RET_OK:
            logger.info("init connect fail: {}".format(msg))
            return RET_ERROR, msg
        else:
            conn_info = copy(content)
            self._sync_conn_id = conn_info['conn_id']
            self._keep_alive_interval = conn_info['keep_alive_interval']
            self._sync_net_ctx.set_conn_id(self._sync_conn_id)
            FutuConnMng.add_conn(conn_info)
            logger.info("sync socket init_connect ok: {}".format(conn_info))

        return RET_OK, ""
예제 #2
0
 def on_async_init_connect(self, ret, msg, conn_info_map):
     """
     异步socket收到initconnect的回包
     :param ret:
     :param msg:
     :param conn_info_map:
     :return:
     """
     if ret == RET_OK:
         self._async_conn_id = conn_info_map['conn_id']
         self._async_ctx.set_conn_id(self._async_conn_id)
         FutuConnMng.add_conn(conn_info_map)
     logger.debug("async init connect ret={}, msg={}, conn_info={}".format(
         ret, msg, conn_info_map))
예제 #3
0
    def _handle_init_connect(self, conn_id, proto_id, ret, msg, rsp_pb):
        data = None
        if ret == RET_OK:
            ret, msg, data = InitConnect.unpack_rsp(rsp_pb)

        with self._lock:
            self._sync_req_ret = _SyncReqRet(ret, msg)
            if ret == RET_OK:
                conn_info = copy(data)
                self._sync_conn_id = conn_info['conn_id']
                self._keep_alive_interval = conn_info['keep_alive_interval'] * 4 / 5
                self._net_mgr.set_conn_info(conn_id, conn_info)
                self._last_keep_alive_time = datetime.now()
                FutuConnMng.add_conn(conn_info)
                logger.info("sync socket init_connect ok: {}".format(conn_info))
            else:
                logger.error("sync socket init_connect error: {}".format(msg))
예제 #4
0
    def _handle_init_connect(self, conn_id, proto_info, ret, msg, rsp_pb):
        data = None
        if ret == RET_OK:
            ret, msg, data = InitConnect.unpack_rsp(rsp_pb)

        with self._lock:
            self._sync_req_ret = _SyncReqRet(ret, msg)
            if ret == RET_OK:
                conn_info = copy(data)
                self._sync_conn_id = conn_info['conn_id']
                self._keep_alive_interval = conn_info['keep_alive_interval'] * 4 / 5
                self._net_mgr.set_conn_info(conn_id, conn_info)
                self._last_keep_alive_time = datetime.now()
                FutuConnMng.add_conn(conn_info)
                logger.info(FTLog.make_log_msg("InitConnect ok", conn_id=conn_id, info=conn_info))
            else:
                logger.warning(FTLog.make_log_msg("InitConnect error", msg=msg))
                self._wait_reconnect()