onMessage = function (\$connection, \$data) { if(str_starts_with(\$data, 'bye')) { terminate_current_process(); } \$connection->send('received: '.\$data); }; Worker::\$command = 'start'; Worker::runAll(); PHP ); $process->start(); sleep(5); }); afterAll(function () use ($serverAddress) { $socket = stream_socket_client(self::$serverAddress, timeout: 1); fwrite($socket, 'bye'); fclose($socket); }); it('tests udp connection', function () use ($serverAddress) { $socket = stream_socket_client($serverAddress, $errno, $errstr, 1); expect($errno)->toBeInt(0); fwrite($socket, 'xiami'); $data = fread($socket, 1024); expect($data)->toBeString('received: xiami'); fclose($socket); }) ->skipOnWindows(); //require posix