如何检测会话是否有效或已过期?

时间:2008-12-01 19:46:11

标签: session soap gsoap

我是否可以通过电话来确定我的会话在gsoap客户端中是否仍然存在?

我看到检查会话是否仍然存在的唯一方法是检查每个soap调用后是否所有cookie值都匹配。由于设置了tcp_keep_alive标志,gsoap似乎会意识到会话处于活动状态。 gsoap中是否有功能允许我在肥皂呼叫之前检查这个功能?是否有回调会告诉我会话丢失?或者我应该为此目的制作一个虚拟肥皂方法?

1 个答案:

答案 0 :(得分:0)

您可以使用Genivia插件来Ckeck并在localhost:8080上创建或更新在任何路径上均有效的会话:

soap->cookie_domain = "localhost:8080";
struct soap_session *session = soap_start_session(soap, NULL, NULL); 

要创建新的会话变量或修改该会话内的现有会话变量,请执行以下操作:

soap_set_session_var(soap, "session_var_name", "session_var_value", NULL, NULL);

要访问该会话变量的值,请执行以下操作:

const char *value = soap_get_session_var(soap, "session_var_name", NULL, NULL);

要删除该会话变量,请执行以下操作:

soap_clr_session_var(soap, "session_var_name", NULL, NULL);