0

libstrophe を使用すると、接続が失われたときに自動的に再接続できますか。クライアント側で次のコードを使用しました。

void conn_handler(xmpp_conn_t * const conn, const xmpp_conn_event_t status,
const int error, xmpp_stream_error_t * const stream_error,
void * const userdata)
{
    if (status == XMPP_CONN_CONNECT) {
        fprintf(stderr, "DEBUG: connected\n");      
    }
    else {
        fprintf(stderr, "DEBUG: disconnected\n");
    }
}
void main()
{
    xmpp_log_t  *log;
    char        *jid;       
    jid = strdup("test@domain.com")
    xmpp_initialize();
    log = xmpp_get_default_logger(XMPP_LEVEL_ERROR);    
    cwmp->xmpp_ctx = xmpp_ctx_new(NULL, log);
    cwmp->xmpp_conn = xmpp_conn_new(cwmp->xmpp_ctx);
    xmpp_conn_set_jid(cwmp->xmpp_conn, jid);
    xmpp_conn_set_pass(cwmp->xmpp_conn, cwmp->xmpp_param.password);
    xmpp_connect_client(cwmp->xmpp_conn, NULL, 0, conn_handler, cwmp->xmpp_ctx);
xmpp_run(cwmp->xmpp_ctx);
}   

クライアントが初めて接続されると、「DEBUG: 接続されました」というメッセージが表示されます。サーバーが完了すると、「DEBUG: 切断されました」というメッセージが表示されます。ただし、サーバーが 2 回目に起動したとき、クライアントは自動的に再接続されません。

4

1 に答える 1