我在使用webman自定义进程并利用Workerman建立TCP服务器时,$connection->id总是不唯一,如:我设置OnConnect时客户端接入打印其id,此时客户端1接入打印1,客户端2接入也打印1。(当然我知道id是自增的,但疑问是此时为何没有自增,是服务端同属一个进程的原因吗?)寻求一个能获得一个唯一id或其他唯一标识的方式。
public function onConnect(TcpConnection $connection)
{
echo $connection->id;
}
你的客户端进程开了几个?
我测试时开了两个客户端。
2个进程客户端,连到不同的服务端进程了。各自的进程id是独立自增的,会有相同的出现
没理解,我的两个客户端链接的是同一个ip地址,端口号都是一致的,这样会连接到两个不同的服务端进程吗?
是的
那么如何保证链接的服务器是同一个呢?
连接的就是同一个服务器啊,就是不同的进程而已
https://www.workerman.net/doc/workerman/tcp-connection/id.html
文档有说
每个进程内从1开始自增,多个进程间会重复