int session = (int)get_env(argv, SESSION_ID);
获取连接唯一的标识符
数据持久性的US_VHOST_DATA
(vhost)或US_HANDLER_DATA
(监听器)或US_SERVER_DATA
(服务器)>当前连接
缺少部分:
只要添加了处理程序的新HDL_BEFORE_CLOSE状态,就应该可以解决这个问题,这使得我可以回答这个问题。
是否可以在G-WAN处理程序中存储持久存储到请求/连接的信息(不知道“请求”是否适用于此处)?
为了更好地说明我的意思,这就是我现在所拥有的:
我也尝试过: 在HDL_AFTER_READ中返回1而不是2 - >客户端获得404并且握手不起作用
目前我只使用US_REQUEST_DATA来识别websocket连接是否已经建立,下一个传入的数据应该是websocket消息格式,所以如果有一个不同的(可能更好的?)解决方案,我对此持开放态度当然也是。
谢谢!
编辑:添加了有关请求/连接的说明
答案 0 :(得分:0)
我不确定为什么US_REQUEST_DATA
似乎没有保留你分配的内存块。
您可以尝试使用persistence.c示例来查看它是否按预期工作吗?
除了G-WAN持久性指针之外,您还可以使用Linux共享内存API等操作系统服务。
但是一旦你复制和放弃G-WAN API应该可以正常工作。粘贴上面的例子。
其他值具有不同的范围:
使用下面的会话ID,该ID对每个CONNECTION都是唯一的:
int session = (int)get_env(argv, SESSION_ID);