CPPCMS会话异步.模式

cppcms session in async. mode

本文关键字:模式 异步 会话 CPPCMS      更新时间:2023-10-16

我使用这段代码来异步运行。服务器:

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消息。如果我用sync替换main函数。显示session().load()session().save(),没有错误,session["username"]可以显示。

这是我的配置文件

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

我的代码有什么问题?

session().load()应该是异步应用程序会话处理的第一条语句

你真的不需要检查状态。

更改会话后调用save。

不要在结尾调用"load()"