Skip to content

服务器连接

概述

服务器连接模块负责与后端服务器建立 WebSocket 连接。支持自动重连、连接状态回调等功能。连接成功后会自动启动登录超时监控(3分钟)。

运行模式

通过 txnet_set_connection_mode 设置,影响连接失败时的行为:

模式连接失败行为
默认模式0自动重连,超过最大次数后调用 exit(1) 退出程序
自定义模式1仅触发回调,返回 false,由调用方决定后续处理

函数

txnet_set_connection_mode

cpp
void txnet_set_connection_mode(int mode);

设置连接模式。

参数类型说明
modeint0=默认模式,1=自定义模式

默认值: 0(默认模式)

txnet_set_max_reconnect

cpp
void txnet_set_max_reconnect(int count);

设置最大重连次数,仅在默认模式下有效。

参数类型说明
countint最大重连次数

默认值: 5次

txnet_set_reconnect_interval

cpp
void txnet_set_reconnect_interval(int seconds);

设置每次重连之间的等待时间,仅在默认模式下有效。

参数类型说明
secondsint重连间隔秒数

默认值: 3秒

txnet_set_connection_callback

cpp
void txnet_set_connection_callback(txnet_connection_callback cb);

设置连接状态变化的回调函数。无论哪种模式,状态变化时都会触发回调。

参数类型说明
cbtxnet_connection_callback回调函数指针,可为 NULL

txnet_connect

cpp
bool txnet_connect();

连接服务器。此函数会阻塞直到连接成功或最终失败。

返回值说明
true连接成功
false连接失败(仅自定义模式会返回,默认模式失败后直接 exit)

txnet_disconnect

cpp
void txnet_disconnect();

断开与服务器的连接,释放所有相关资源。

txnet_is_connected

cpp
bool txnet_is_connected();

检查当前是否已连接到服务器。

返回值说明
true已连接
false未连接

回调函数

txnet_connection_callback

cpp
typedef void (*txnet_connection_callback)(int status, const char* message);
参数类型说明
statusint连接状态码
messageconst char*状态描述文本

状态码:

常量说明
TXNET_STATUS_DISCONNECTED0已断开连接
TXNET_STATUS_CONNECTING1正在连接中
TXNET_STATUS_CONNECTED2连接成功
TXNET_STATUS_RECONNECTING3正在重连中
TXNET_STATUS_FAILED4连接失败

示例

cpp
#include "txnet.h"
#include <stdio.h>

void onConnectionStatus(int status, const char* message) {
    const char* statusNames[] = {"断开", "连接中", "已连接", "重连中", "失败"};
    printf("[连接] %s: %s\n", statusNames[status], message);
}

int main() {
    txnet_init(&config);
    
    txnet_set_connection_callback(onConnectionStatus);
    txnet_set_connection_mode(0);
    txnet_set_max_reconnect(3);
    txnet_set_reconnect_interval(5);
    
    if (!txnet_connect()) {
        printf("连接失败\n");
        return 1;
    }
    
    printf("连接成功,状态: %d\n", txnet_is_connected());
    
    // ... 业务逻辑 ...
    
    txnet_disconnect();
    return 0;
}

TxNet 网络通信库文档