raheelrafiq326/websocket

为Laravel应用程序提供Websocket支持。

v1.0.1 2023-12-01 14:33 UTC

This package is auto-updated.

Last update: 2024-10-01 00:07:47 UTC


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)。有关更多信息,请参阅许可证文件