diff --git a/digital_doctor/application/index/controller/Test.php b/digital_doctor/application/index/controller/Test.php index 984b627..7e96f9b 100644 --- a/digital_doctor/application/index/controller/Test.php +++ b/digital_doctor/application/index/controller/Test.php @@ -9,6 +9,7 @@ namespace app\index\controller; +use app\api\logic\AudioRevertLogic; use React\EventLoop\Factory; use React\Socket\TcpConnector; use React\Socket\SecureConnector; @@ -19,6 +20,11 @@ use Evenement\EventEmitter; */ class Test extends BasePublicController { + function test2(){ + $obj = new AudioRevertLogic(); + $obj->revert(1,2); + + } function test() { // 配置您的讯飞应用信息 @@ -35,6 +41,8 @@ class Test extends BasePublicController $secureConnector = new SecureConnector($tcpConnector, $loop); // 实时语音转写API地址 + //ws://8.130.29.83:2700 + //$url = 'ws://8.130.29.83:2700'; $url = 'wss://rtasr.xfyun.cn/v1/ws'; // 计算签名 diff --git a/digital_doctor/composer.json b/digital_doctor/composer.json index 3789401..d311f16 100644 --- a/digital_doctor/composer.json +++ b/digital_doctor/composer.json @@ -27,7 +27,10 @@ "iflytekop/xfyun-sdk": "^2.0", "react/socket": "^1.15", "evenement/evenement": "^3.0", - "cboden/ratchet": "^0.4.4" + "cboden/ratchet": "^0.4.4", + "react/event-loop": "^1.5", + "react/http": "^1.10", + "react/promise": "^3.2" }, "autoload": { "psr-4": { diff --git a/digital_doctor/public/test.php b/digital_doctor/public/test.php index e69de29..bd048c5 100644 --- a/digital_doctor/public/test.php +++ b/digital_doctor/public/test.php @@ -0,0 +1,76 @@ + $host, + 'Upgrade' => 'websocket', + 'Connection' => 'Upgrade', + 'Sec-WebSocket-Key' => base64_encode(random_bytes(16)), + 'Sec-WebSocket-Version' => 13, + ]; + + $handshake = "GET $resource HTTP/1.1\r\n"; + foreach ($headers as $name => $value) { + $handshake .= "$name: $value\r\n"; + } + $handshake .= "\r\n"; + + return $socketConnector->connect("$host:$port", $loop) + ->then(function (ConnectionInterface $conn) use ($handshake, $loop) { + $conn->write($handshake); + + $response = new ThroughStream(); + $response->on('data', function ($chunk) use (&$response, $conn) { + if (strpos($chunk, "\r\n\r\n") !== false) { + $response->emit('end'); + } + }); + + $conn->pipe($response); + + return $response; + }) + ->then(function (ThroughStream $response) use ($loop) { + $response->on('end', function () use ($loop) { + $loop->nextTick(function () use ($conn) { + $conn->resume(); + }); + }); + + return $conn; + }); +} + +// 连接到WebSocket服务器 +connectToWebSocket('ws://8.130.29.83:2700', $loop) + ->then(function ($conn) { + $conn->on('data', function ($data) { + echo "Received: $data\n"; + }); + + $conn->write("Hello Server!\n"); // 发送一条消息 + }) + ->otherwise(function ($error) { + echo "Error: " . $error->getMessage() . "\n"; + }); + +$loop->run(); // 开始事件循环