jarven
jarven
> 通过fd来确定唯一client标识是有问题的,因为连接可能会断开重连,重连后同一个client的fd也是不同的。你需要通过客户端发送一个唯一的key告诉服务端,服务端保存起来,重连后需要重新发送唯一key,这样才能不会因为client断线而找不到原来的client。 是的。但是,我们这边的业务,不关心具体的客户端。我们只是想确认连接,同一个客户端重连,他的连接变化我们也接受。 现在我是通过req.get_conn()->shared_from_this() 来区分每个连接。但是,现在我们碰到了一个很棘手的问题。
我仿照github上cinatra的用例6写的服务端程序,在debian系统中运行,下面是大致的代码 //客户端连接上 req.on(ws_open, [&](request& req) { std::cout
这个是在debian上运行的打印结果: 
测试了很多次,都是这样,服务器程序启动之后,第一个客户端(上面的连接1),它的连接fd与发送消息的fd是不一样的。而且只有第一个这样,后续的客户端,他们的fd都是相同的。(我这里把req.get_conn()->shared_from_this()当成是连接)
@qicosmos 希望您能帮助我们确认一下这个问题。
it prints "ETH: Cannot find seed that was received from pool! "