3 Star 41 Fork 12

糖水不加糖 / thinkphp-swoole3-demo

 / 详情

用swoole_table支持同一个用户多端在线,不知道有没有什么好的思路?

Done
Opened this issue  
2021-07-09 11:49
No description.

Comments (1)

wpfly created任务
Expand operation logs

增设前/后缀就可以了.例如app端有pc/ios/android(这里需要配置化或者全局参数化),uid为X1U.在登录时将各自的fd分别映射到各自前/后缀上.
以前缀举例,3端同时登录则有table-key=>PC:X1U=pc-fd,IOS:X1U=ios-fd,ANDROID:X1U=android-fd.
此时有一条信息需要投递到该用户客户端时,循环client配置化列表或者全局参数列表即["pc","ios","android"],拼接上该用户uid即可得到table-key.使用Swoole\Table->exist(string $key): bool方法判断fd是否存在即可得到fd值投递多client消息.
PS:全局参数在swoole中教难实现,不推荐内部实现,可以实现在redis等缓存服务中(集合形式).在用户连接时带上客户端标识,每有一种新的标识出现则置入到该配置缓存中.

糖水不加糖 changed issue state from 待办的 to 进行中
糖水不加糖 changed issue state from 进行中 to 已完成

Sign in to comment

Status
Assignees
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
参与者(2)
581871 flyering 1578928284
PHP
1
https://gitee.com/tsbjt/thinkphp-swoole3-demo.git
git@gitee.com:tsbjt/thinkphp-swoole3-demo.git
tsbjt
thinkphp-swoole3-demo
thinkphp-swoole3-demo

Search