我正在尝试使用 Libstrophe 在 C 中创建一个聊天客户端。我参考了https://github.com/metajack/libstrophe/blob/master/examples/active.c给出的以下代码示例 该代码调用了 xmpp_connect_client(...) 以建立与 xmpp 的连接服务器。
int main(int argc, char **argv)
{
xmpp_ctx_t *ctx;
xmpp_conn_t *conn;
if (argc != 3) {
fprintf(stderr, "Usage: active <jid> <pass>\n\n");
return 1;
}
/* initialize lib */
xmpp_initialize();
/* create a context */
ctx = xmpp_ctx_new(NULL, NULL);
/* create a connection */
conn = xmpp_conn_new(ctx);
/* setup authentication information */
xmpp_conn_set_jid(conn, argv[1]);
xmpp_conn_set_pass(conn, argv[2]);
/* initiate connection */
xmpp_connect_client(conn, "talk.google.com", 0, conn_handler, ctx);
/* start the event loop */
xmpp_run(ctx);
/* release our connection and context */
xmpp_conn_release(conn);
xmpp_ctx_free(ctx);
/* shutdown lib */
xmpp_shutdown();
return 0;
但是身份验证在哪里进行?我查找了 libstrophe 的源代码,发现 C 文件 auth.c https://github.com/metajack/libstrophe/blob/master/src/auth.c 有一个名为 _auth(..) 的函数。我尝试在我的代码中使用 _auth(..) 但它没有正确执行身份验证。即它不会通知我错误的用户名或密码。任何人都可以建议我验证我的实体的正确方法。