作者 lyh

gx

@@ -146,11 +146,6 @@ class LoginController extends BaseController @@ -146,11 +146,6 @@ class LoginController extends BaseController
146 // $message = file_get_contents("php://input"); 146 // $message = file_get_contents("php://input");
147 // $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR); 147 // $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR);
148 // @file_put_contents(storage_path('logs/lyh_error.log'), $message . PHP_EOL, FILE_APPEND); 148 // @file_put_contents(storage_path('logs/lyh_error.log'), $message . PHP_EOL, FILE_APPEND);
149 - app('swoole')->on('request', function (Request $request, Response $response) {  
150 - Res->header('Content-Type', 'text/plain');  
151 - $response->end('Hello, Swoole!');  
152 - });  
153 - event(new WebSocketMessage('Hello, WebSocket!'));  
154 $this->response('success'); 149 $this->response('success');
155 } 150 }
156 151
1 -1xWNlADruLkCMOlVWI2uVnNaYm6UnX_6GQ0Wx_SmRqg.92MgafohR-efXZG8zg-WR8yML77JCdeEYaR31-KS-Nk  
1 -HmjSZWq4S3E3RCo2PAFNo1_TX4pEq31aEnO54PqkG7s.92MgafohR-efXZG8zg-WR8yML77JCdeEYaR31-KS-Nk  
  1 +<?php
  2 +
  3 +use Swoole\WebSocket\Server;
  4 +use Illuminate\Foundation\Application;
  5 +use SwooleTW\Http\Websocket\Facades\Websocket;
  6 +
  7 +use App\Http\Controllers\WebSocketController;
  8 +
  9 +require __DIR__ . '/vendor/autoload.php';
  10 +
  11 +$app = new Application(__DIR__);
  12 +$app->singleton(
  13 + Illuminate\Contracts\Http\Kernel::class,
  14 + App\Http\Kernel::class
  15 +);
  16 +$app->singleton(
  17 + Illuminate\Contracts\Console\Kernel::class,
  18 + Illuminate\Foundation\Console\Kernel::class
  19 +);
  20 +$app->singleton(
  21 + Illuminate\Contracts\Debug\ExceptionHandler::class,
  22 + Illuminate\Foundation\Exceptions\Handler::class
  23 +);
  24 +$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
  25 +
  26 +$server = new Server("0.0.0.0", 8888);
  27 +
  28 +$server->on('open', function ($server, $request) {
  29 + // WebSocket 连接已打开
  30 + echo "WebSocket 连接已打开\n";
  31 +});
  32 +
  33 +$server->on('message', function ($server, $frame) {
  34 + $message = $frame->data;
  35 + echo "收到消息: $message\n";
  36 +
  37 + // 获取客户端连接的文件描述符
  38 + $fd = $frame->fd;
  39 +
  40 + // 回复消息给客户端
  41 + $response = "我已收到消息: $message";
  42 + $server->push($fd, $response);
  43 +
  44 +
  45 + // 获取所有客户端连接的文件描述符
  46 + $clients = $server->connection_list();
  47 +
  48 + // 迭代所有客户端连接并广播消息
  49 + foreach ($clients as $fd) {
  50 + // 排除自己,避免回发消息给发送者
  51 + if ($fd !== $frame->fd) {
  52 + $server->push($fd, "这是广播消息: $message");
  53 + }
  54 + }
  55 +
  56 + //调用laravel控制器
  57 + $controller = new WebSocketController();
  58 +
  59 +});
  60 +
  61 +$server->on('close', function ($server, $fd) {
  62 + // WebSocket 连接已关闭
  63 + echo "WebSocket 连接已关闭\n";
  64 +});
  65 +
  66 +$server->start();
@@ -14,7 +14,6 @@ use SwooleTW\Http\Websocket\Facades\Websocket; @@ -14,7 +14,6 @@ use SwooleTW\Http\Websocket\Facades\Websocket;
14 */ 14 */
15 15
16 Websocket::on('connect', function ($websocket, Request $request) { 16 Websocket::on('connect', function ($websocket, Request $request) {
17 -  
18 @file_put_contents(storage_path('logs/lyh_error.log'), var_export(111111, true) . PHP_EOL, FILE_APPEND); 17 @file_put_contents(storage_path('logs/lyh_error.log'), var_export(111111, true) . PHP_EOL, FILE_APPEND);
19 // called while socket on connect 18 // called while socket on connect
20 }); 19 });
@@ -31,7 +30,6 @@ Websocket::on('example', function ($websocket, $data) { @@ -31,7 +30,6 @@ Websocket::on('example', function ($websocket, $data) {
31 30
32 Websocket::on('message', function ($websocket, $data) { 31 Websocket::on('message', function ($websocket, $data) {
33 // 处理接收到消息时的逻辑 32 // 处理接收到消息时的逻辑
34 -  
35 // 假设 $data 是客户端发送过来的数据 33 // 假设 $data 是客户端发送过来的数据
36 // 在这里您可以根据接收到的消息进行处理 34 // 在这里您可以根据接收到的消息进行处理
37 @file_put_contents(storage_path('logs/lyh_error.log'), var_export(4444444, true) . PHP_EOL, FILE_APPEND); 35 @file_put_contents(storage_path('logs/lyh_error.log'), var_export(4444444, true) . PHP_EOL, FILE_APPEND);