因为ws地址类似这样:ws://127.0.0.1:8000/ws/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp
token每隔几分钟就会变,需要改变token,改变ws的连接地址。
如何在关闭当前连接,创建一个新连接?
workerman有一个很大的问题,就是只能创建,无法关闭。比如创建一个http服务,就只能一直开着,没有关闭的功能,无法灵活调整
可以主动关闭啊 close 方法
这个是作为服务端的时候用的,关闭别人。现在是作为客户端,关闭自己,然后关闭?
客户端也可以关闭啊 连接时获取到了连接对象 connection 调用connection 上的 关闭连接方法
$udp_connection = new AsyncUdpConnection('udp://127.0.0.1:1234'); $udp_connection->onConnect = function(AsyncUdpConnection $udp_connection){ $udp_connection->send('hi'); }; $udp_connection->onMessage = function(AsyncUdpConnection $udp_connection, $data){ // 收到服务端返回的数据 hello echo "recv $data\r\n"; // 关闭连接 $udp_connection->close(); }; $udp_connection->connect();
close是关闭连接,然后重新new AsyncTcpConnection,重新设置onMessage等回调就行了
哪里有close?没有这个方法
这个是关闭连接 https://www.workerman.net/doc/workerman/tcp-connection/close.html 停止监听是 $worker->unlisten();
close是作为服务端时可以用,作为客户端时,没有这个啊
不区分啊,都是连接嘛
$worker->onWorkerStart = function(){ // 每隔10秒用新token去连一次 $token = md5(time()); Timer::add(10, 'connect_with_token', [$token]); }; function connect_with_token($token) { static $connection; if ($connection) $connection->close(); $connection = new AsyncTcpConnection('ws://127.0.0.1:8000/ws/?token='.$token); $connection->onMessage = function($connection, $data){ var_dump($data); }; $connection->connect(); }
可以主动关闭啊 close 方法
这个是作为服务端的时候用的,关闭别人。现在是作为客户端,关闭自己,然后关闭?
客户端也可以关闭啊 连接时获取到了连接对象 connection 调用connection 上的 关闭连接方法
$udp_connection = new AsyncUdpConnection('udp://127.0.0.1:1234');
$udp_connection->onConnect = function(AsyncUdpConnection $udp_connection){
$udp_connection->send('hi');
};
$udp_connection->onMessage = function(AsyncUdpConnection $udp_connection, $data){
// 收到服务端返回的数据 hello
echo "recv $data\r\n";
// 关闭连接
$udp_connection->close();
};
$udp_connection->connect();
close是关闭连接,然后重新new AsyncTcpConnection,重新设置onMessage等回调就行了
哪里有close?没有这个方法
这个是关闭连接 https://www.workerman.net/doc/workerman/tcp-connection/close.html
停止监听是 $worker->unlisten();
close是作为服务端时可以用,作为客户端时,没有这个啊
不区分啊,都是连接嘛