v5.0.1 websocket客户端 判断连接状态有问题->isConnected() 不准确。
当ws_clients 和服务器端的连接状态有变化时候,isConnected不能准确返回正确的值,导致产生错误,望大佬能修正下。 ` =ws_clients客户端==1==1========= PHP Fatal error: Uncaught Yurun\Util\YurunHttp\Exception\WebSocketException: Send Failed, error: Client no connection, errorCode: 5001 in /home/wwwroot/html_88001/vendor/yurunsoft/yurun-http/src/YurunHttp/WebSocket/Swoole.php:130 Stack trace: #0 /home/wwwroot/html_88001/vos_server_o.php(636): Yurun\Util\YurunHttp\WebSocket\Swoole->send() #1 [internal function]: server->{closure}() #2 {main} thrown in /home/wwwroot/html_88001/vendor/yurunsoft/yurun-http/src/YurunHttp/WebSocket/Swoole.php on line 130
if($serv->ws_clients[$fd]->isConnected()){ $serv->ws_clients[$fd]->send('EOS'); } `
PHP 8.3.8 (cli) (built: Jun 4 2024 14:53:17) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.3.8, Copyright (c) Zend Technologies with Zend OPcache v8.3.8, Copyright (c), by Zend Technologies
swoole
Swoole => enabled Author => Swoole Team [email protected] Version => 5.1.5 Built => Nov 21 2024 19:44:14 coroutine => enabled with boost asm context epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled sockets => enabled openssl => OpenSSL 1.0.2k-fips 26 Jan 2017 http2 => enabled json => enabled curl-native => enabled pcre => enabled c-ares => 1.10.0 zlib => 1.2.7 brotli => E16777225/D16777225 mutex_timedlock => enabled pthread_barrier => enabled futex => enabled mysqlnd => enabled async_redis => enabled
Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_fiber_mock => Off => Off swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 8388608 => 8388608