Как определить, является ли сеанс живым или истек? - PullRequest
4 голосов
/ 01 декабря 2008

Можно ли позвонить, чтобы определить, жив ли мой сеанс в клиенте gsoap?

Единственный способ проверить, жив ли сеанс, - это проверить, все ли значения cookie совпадают после каждого вызова мыла. Кажется, что gsoap будет знать о том, что сессия жива, так как установлен флаг tcp_keep_alive. Есть ли в gsoap функциональность, которая позволила бы мне проверить это перед вызовом мыла? Есть ли обратный вызов, который сообщит мне о потере сеанса? Или я должен просто сделать для этого фиктивный метод мыла?

1 Ответ

0 голосов
/ 16 июля 2018

Вы можете использовать Genivia Plugin, чтобы 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); 
...