本文整理汇总了C++中UserSession::GetSrvId方法的典型用法代码示例。如果您正苦于以下问题:C++ UserSession::GetSrvId方法的具体用法?C++ UserSession::GetSrvId怎么用?C++ UserSession::GetSrvId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserSession
的用法示例。
在下文中一共展示了UserSession::GetSrvId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CheckUserLoop
// 检测用户心跳
void PasClient::CheckUserLoop( UserSession &user )
{
// 控制通道的链路维护
PccUser &tcpuser = user.GetUser( true ) ;
if ( tcpuser.IsOnline() ) {
if ( tcpuser.Check( 30, PCC_USER_LOOP ) && user.IsKey(true) ) {
char buf[1024] = {0};
sprintf( buf, "SZ N %s\r\n", tcpuser._srv_key.c_str() ) ;
SendData( tcpuser._fd, buf, strlen(buf) ) ;
tcpuser.Update( PCC_USER_LOOP ) ;
OUT_SEND( tcpuser._srv_ip.c_str(), tcpuser._srv_port, tcpuser._username.c_str(), "fd %d, Send TCP NOOP: %s",
tcpuser._fd->_fd, buf ) ;
}
// 如果超时需要处理重连操作
if ( tcpuser.Check( 180, PCC_USER_ACTVIE ) ) {
tcpuser.SetOffline() ;
user.GetUser(false).SetOffline() ;
OUT_ERROR( tcpuser._srv_ip.c_str(), tcpuser._srv_port, tcpuser._username.c_str(), "tcp actvie time timeout") ;
}
} else if ( ! tcpuser.IsOffline() ) {
if ( tcpuser.Check( 120, PCC_USER_LOGIN ) ) {
tcpuser.SetOffline() ;
OUT_PRINT( tcpuser._srv_ip.c_str(), tcpuser._srv_port, tcpuser._username.c_str(), "connect server tcp timeout") ;
}
}
// 数据通道链路维护
PccUser &udpuser = user.GetUser(false) ;
if ( udpuser.IsOnline() ) {
if ( udpuser.Check( 30, PCC_USER_LOOP ) && user.IsKey(false) ) {
char buf[1024] = {0};
sprintf( buf, "*%s|NOOP|%s#", user.GetSrvId(), udpuser._srv_key.c_str() ) ;
SendData( udpuser._fd, buf, strlen(buf) ) ;
// _udp_handle.deliver_data( udpuser._fd, udpuser._srv_ip.c_str(), udpuser._srv_port, buf, strlen(buf) ) ;
udpuser.Update( PCC_USER_LOOP ) ;
OUT_SEND( udpuser._srv_ip.c_str(), udpuser._srv_port, udpuser._username.c_str(), "fd %d, Send UDP NOOP: %s",
udpuser._fd->_fd, buf ) ;
}
// 如果UDP心跳没有应答就直接处理重连了
if ( udpuser.Check(180, PCC_USER_ACTVIE) ) {
udpuser.SetOffline() ;
OUT_ERROR( udpuser._srv_ip.c_str(), udpuser._srv_port, udpuser._username.c_str(), "udp active time timeout" ) ;
tcpuser.SetOffline() ;
}
} else {
if ( udpuser.Check( 120, PCC_USER_LOGIN) ) {
udpuser.SetOffline() ;
OUT_PRINT( udpuser._srv_ip.c_str(), udpuser._srv_port, udpuser._username.c_str(), "connect server udp timeout") ;
tcpuser.SetOffline() ;
}
}
}