入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:47:04 | 144 次阅读 | 评论: 0 | 来源: 网络整理

将连接绑定一个用户定义的ID,可以设置dispatch_mode=5设置已此ID值进行hash固定分配。可以保证某一个UID的连接全部会分配到同一个Worker进程。

在默认的dispatch_mode=2设置下,server会按照socket fd来分配连接数据到不同的worker。因为fd是不稳定的,一个客户端断开后重新连接,fd会发生改变。这样这个客户端的数据就会被分配到别的Worker。使用bind之后就可以按照用户定义的ID进行分配。即使断线重连,相同uid的TCP连接数据会被分配相同的Worker进程。

bool swoole_server::bind(int $fd, int $uid)
  • $fd 连接的文件描述符
  • $uid 指定UID

同一个连接只能被bind一次,如果已经绑定了uid,再次调用bind会返回false
可以使用$serv->connection_info($fd) 查看连接所绑定uid的值

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务