Сессия cppcms в асинхронном режиме. Режим

Я использую этот код для запуска асинхронного. сервер:

int main(int argc, char ** argv)
{
cppcms::service service(argc, argv);
booster::intrusive_prt<gameServer> c = new gameServer(service);
service.applications_pool().mount(c);
service.run();
}

А в классе gameServer у меня есть следующие коды:

session().reset_session();
session()["username"] = "admin";
session().save();
...
if(!session().load())
std::cerr<<" session doesn't load";

Когда я компилирую и запускаю программу, session doesn't load сообщение показывает. Если я заменю main функция с синхронизацией. сервер и удалить session().load() а также session().save()нет ошибки и session["username"] может быть показано.

Вот мой файл конфигурации

{
...
"file_server" : { "enable" : true, "document_root" : "." },
"session :
{
"expire" : "browser",
"timeout" : 604800,
"location" : "server",
"server" : { "storage" : "files" }
}
}

Что не так с моим кодом?

1

Решение

session().load() должен быть первым оператором в обработке сеанса асинхронных приложений

Вам не нужно проверять статус.

После смены сеанса звоните сохранить.

Вы не вызываете «load ()» в конце

1

Другие решения

Других решений пока нет …