首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole新手使用sw_table,请帮忙解惑
刚接触半个月的swoole,打算在公司现有安卓app上,增加聊天功能,主要是使用websocket实现,客连接到服务器的用户信息,存储在sw_table表中,在使用的过程中有些疑问,还请帮忙解答,谢谢! 1、sw_table共享内存表中的key使用fd(服务器分配给客户端的唯一标识)好,还是userId(用户唯一标识)好? 目前使用的是fd作为key,好处是客户端退出socket连接后,服务器可以很方便调用del删除sw_table存储的信息。缺点是服务器每推送1条消息,需要遍历sw_table中的用户信息,来确定推送给哪个fd。并发量大的情况下,担心服务器是否吃得消。 2、某个客户端断开后,sw_table中存储的当前用户的信息,需要手动调用$ws->table->del($fd)来清除吗? 目前是在onClose的时候,调用的sw_table->del($fd)清除该客户端登录信息。 3、nginx服务器集群环境下(打算两台swoole服务器),是否有使用sw_table的例子?还是必须使用redis实现?若使用redis,需要哪些准备? 若两台swoole服务器,使用sw_table可以吗?连接到不同服务器的客户端之间,产生的fd也是独立的,相互之间怎么推送消息。
发布于7年前 · 2 次浏览 · 来自
提问
胡
胡鹏宇
刚接触半个月的swoole,打算在公司现有安卓app上,增加聊天功能,主要是使用websocket实现,客连接到服务器的用户信息,存储在sw_table表中,在使用的过程中有些疑问,还请帮忙解答,谢谢! 1、sw_table共享内存表中的key使用fd(服务器分配给客户端的唯一标识)好,还是userId(用户唯一标识)好? 目前使用的是fd作为key,好处是客户端退出socket连接后,服务器可以很方便调用del删除sw_table存储的信息。缺点是服务器每推送1条消息,需要遍历sw_table中的用户信息,来确定推送给哪个fd。并发量大的情况下,担心服务器是否吃得消。 2、某个客户端断开后,sw_table中存储的当前用户的信息,需要手动调用$ws->table->del($fd)来清除吗? 目前是在onClose的时候,调用的sw_table->del($fd)清除该客户端登录信息。 3、nginx服务器集群环境下(打算两台swoole服务器),是否有使用sw_table的例子?还是必须使用redis实现?若使用redis,需要哪些准备? 若两台swoole服务器,使用sw_table可以吗?连接到不同服务器的客户端之间,产生的fd也是独立的,相互之间怎么推送消息。
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2017-10-14
狼
狼牙
你可以创建2个Table,分别保存不同的数据
赞
0
回复
2017-10-16
f
funnymaker
谢谢群主的解答。 另外请问,使用两台swoole服务器(A和B),因客户端连接的fd,分别存储在两台服务器上,连接到A服务器的用户,怎么给连接到B服务器的用户发送消息?
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。