Пример #1
0
void CGateServer::ConnectRouteServer() {
    CRouteConn *routeConn = new CRouteConn;
    ServerAddr routeAddr = CGateConfig::Instance()->GetRouteAddr();
    log("ip = %s\tport = %d\n", routeAddr.ip.c_str(), routeAddr.port);
    routeConn->Connect(routeAddr.ip.c_str(), routeAddr.port);
    netlib_register_timer(route_server_timer_callback, NULL, 1000);
}
Пример #2
0
CHttpQuery* CHttpQuery::GetInstance()
{
	if (!m_query_instance) {
		m_query_instance = new CHttpQuery();
		netlib_register_timer(http_query_timer_callback, NULL, 1000);
	}

	return m_query_instance;
}
Пример #3
0
void CClient::connect()
{
    CHttpClient httpClient;
    string strUrl = m_strLoginDomain + "/msg_server";
    string strResp;
    CURLcode nRet = httpClient.Get(strUrl, strResp);
    if(nRet != CURLE_OK)
    {
        printf("login falied. access url:%s error\n", strUrl.c_str());
		g_configReturn = false;
        PROMPTION;
        return;
    }
    Json::Reader reader(Json::Features::strictMode());
    Json::Value value;
    if(!reader.parse(strResp, value))
    {
        printf("login falied. parse response error:%s\n", strResp.c_str());
		g_configReturn = false;
        PROMPTION;
        return;
    }
    string strPriorIp, strBackupIp;
    uint16_t nPort;
    try {
        uint32_t nRet = value["code"].asUInt();
        if(nRet != 0)
        {
            string strMsg = value["msg"].asString();
            printf("login falied. errorMsg:%s\n", strMsg.c_str());
			g_configReturn = false;
            PROMPTION;
            return;
        }
        strPriorIp = value["priorIP"].asString();
        strBackupIp = value["backupIP"].asString();
        nPort = string2int(value["port"].asString());
        
    } catch (std::runtime_error msg) {
        printf("login falied. get json error:%s\n", strResp.c_str());
		g_configReturn = false;
        PROMPTION;
        return;
    }

    g_pConn = new ClientConn(this);
    m_nHandle = g_pConn->connect(strBackupIp.c_str(), nPort, m_strName, m_strPass);
    if(m_nHandle != INVALID_SOCKET)
    {
        netlib_register_timer(CClient::TimerCallback, (void*)this, 1000);	
		g_configReturn = true;
    }
    else
    {
        printf("invalid socket handle\n");
    }
}
Пример #4
0
static void SigHandler(int sig_no)
{
	if (sig_no == SIGTERM) {
		Logger.Log(ERROR, "receive SIGTERM, prepare for exit");

        // callback after 4 second to exit process;
		netlib_register_timer(ExitCallback, NULL, 4000);
	}
}
Пример #5
0
void init_route_serv_conn(serv_info_t* server_list, uint32_t server_count)
{
	g_route_server_list = server_list;
	g_route_server_count = server_count;

	serv_init<CRouteServConn>(g_route_server_list, g_route_server_count);

	netlib_register_timer(route_server_conn_timer_callback, NULL, 1000);
	s_file_handler = CFileHandler::getInstance();
	s_group_chat = CGroupChat::GetInstance();
}
Пример #6
0
/**
 * 初始化线程池及命令字与处理方法的映射关系
 */
int InitHttpConn(uint32_t thread_num)
{
	g_routeConfig = CRouteConfig::getInstance();
	g_threadPool.Init(thread_num);

	netlib_add_loop(HttpLoopCallback, NULL);

	signal(SIGTERM, SigHandler);

	return netlib_register_timer(HttpConnTimerCallback, NULL, 1000);
}
Пример #7
0
void init_db_serv_conn(serv_info_t* server_list, uint32_t server_count, uint32_t concur_conn_cnt)
{
	g_db_server_list = server_list;
	g_db_server_count = server_count;

	uint32_t total_db_instance = server_count / concur_conn_cnt;
	g_db_server_login_count = (total_db_instance / 2) * concur_conn_cnt;
	log("DB server connection index for login business: [0, %u), for other business: [%u, %u)\n",
			g_db_server_login_count, g_db_server_login_count, g_db_server_count);

	serv_init<CDBServConn>(g_db_server_list, g_db_server_count);

	netlib_register_timer(db_server_conn_timer_callback, NULL, 1000);
	s_group_chat = CGroupChat::GetInstance();
	s_file_handler = CFileHandler::getInstance();
}
Пример #8
0
void init_http_conn()
{
	netlib_register_timer(http_conn_timer_callback, NULL, 1000);
}
Пример #9
0
void init_routeconn_timer_callback()
{
	//s_route_file_handler = CRouteFileHandler::getInstance();
	netlib_register_timer(route_serv_timer_callback, NULL, 1000);
}