[已解决] websocket中context 保存的变量是针对进程的吗?

pengzhen

用的webman+GatewayWork,因为代码需要保存一些变量,用了context的,http下没有问题,但是用websocket发现,不同的message事件,获取的context里的值是一样的,要怎么改才能针对每个message

244 1 0
1个回答

walkor 打赏

Context是针对webman自带的http进程的。自定义进程包括GatewayWorker插件无法直接使用。
如果你要在 GatewayWorker 里使用,需要在合适的时候执行 Context::destroy() 销毁,例如在onMesage的最后执行它

  • pengzhen 2024-10-24

    昨天看webman的源代码,确实是在send后调用了destroy,看源代码,我没看懂,onmessage执行完最后一行业务代码,调destroy,这个上下文就是message级别的吗?其他连接不会读到这个连接设置的变量吗

  • walkor 2024-10-24

    对,读不到

  • pengzhen 2024-10-24

    不对,不是其他连接,是其他message,即使是同一个连接的不同message,也读取不到吗

  • walkor 2024-10-24

    你保证每个message后都执行了 Context::destroy() 就读不到了

  • pengzhen 2024-10-24

    感谢大佬,万分感谢

×
🔝