raheelrafiq326 / websocket
为Laravel应用程序提供Websocket支持。
v1.0.1
2023-12-01 14:33 UTC
Requires
- cboden/ratchet: ^0.4.4
- textalk/websocket: ^1.5
README
文档、安装和用法说明
简介
此包允许您在包中添加socket服务器。
在Laravel项目中安装库。
composer require raheelrafiq326/websocket
文档
安装
在项目中发布配置和js文件。
php artisan vendor:publish --tag=websocket
php artisan websocket:serve
安装后,将以下命令添加到app\Console\Kernel.php中的schedule函数中(如果要从cronjob添加websocket服务器)。
protected function schedule(Schedule $schedule): void { // call this command to be schedule $schedule->command('websocket:serve')->withoutOverlapping(); }
之后运行调度程序(在开发或本地)。
php artisan schedule:run
在服务器(生产)的cron job中添加上述命令。
用法
您可以使用以下代码从控制器或其他类广播事件。
use RaheelRafiq326\Websocket\WebSocketClient; // Change value with your channel name. $channel = "<Channel Name>"; // Change value with your event name. $event = "<Event Name>"; // Chnage value according to your requirement. $data = [ "message" => "Hi" ]; // Call sendMessage function of WebSocketClient from package. WebSocketClient::sendMessage($channel, $event, $data);
测试
如果您未发布js文件,请运行以下命令。
php artisan vendor:publish --tag=websocket-js
您可以使用socket.js测试websocket连接。它已导出到public/vendor/websocket目录。
<script src="{{ asset('vendor/websocket/socket.js') }}"></script> <script> // connect websocket const socket = new Socket("{{ config('websocket.host') }}") // check if socket connect successfully socket.onopen((event) => { console.log("onopen event ==> ", event) }) // listen events socket.listen({ channel: "<Channel Name>", event: "<Event Name>", callback: (event) => { console.log("event listen ==> ", event) } }) </script>
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。