1

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

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用同步替换该功能。server and remove session().load()and session().save(),没有错误,session["username"]可以显示。

这是我的配置文件

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

我的代码有什么问题?

4

1 回答 1

1

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

你真的不需要检查状态。

更改会话后,您调用保存。

最后你不要调用“load()”

于 2013-05-19T08:53:34.763 回答