承接 uzdevid/yii2-websocket 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

uzdevid/yii2-websocket

最新稳定版本:1.0.5

Composer 安装命令:

composer require uzdevid/yii2-websocket

包简介

Yii2 Web Socket service

README 文档

README

Yii2 WebSocket Application is a powerful and flexible extension for the Yii2 framework that enables developers to integrate a WebSocket server into their applications. Built on top of the workerman/workerman package, this extension is ideal for creating real-time features such as chats, notifications, online games, and other interactive applications that require a persistent connection to the server.

Installation

composer require uzdevid/yii2-websocket

Usage

Application configuration similar to the default application.

Create config file <project_root>/socket/config/main.php

use UzDevid\WebSocket\Server\WebSocketServer;

$params = array_merge(
    require __DIR__ . '/../../common/config/params.php',
    require __DIR__ . '/params.php',
);

return [
    'id' => 'web-socket-app',
    'basePath' => dirname(__DIR__),
    'controllerNamespace' => 'socket\\controllers',
    'webSocketServer' => [
        'class' => WebSocketServer::class,
        'host' => '0.0.0.0',
        'port' => 8080,
        'count' => 1
    ],
    'components' => [],
    'params' => $params,
];

With the current settings, the web socket server will listen on 0.0.0.0:8080. Count of workers: 1

Message processing occurs through the controller and action. Create <project-root>/socket/EchoController controller.

namespace socket\controllers;

use UzDevid\WebSocket\Controller;
use UzDevid\WebSocket\Server\Dto\Client;

class EchoController extends Controller {
    /**
     * @param Client $client
     * @param array $payload
     * @return void
     */
    public function actionEcho(Client $client, array $payload): void {
        $client->user->send('echo:echo', ['currentTime' => time()]);
    }
}

Create entry point file named <project_root>/run

#!/usr/bin/env php
/**
 * Yii WebSocket bootstrap file.
 */
use UzDevid\WebSocket\Application;

require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/common/сonfig/bootstrap.php';
require __DIR__ . '/socket/сonfig/bootstrap.php';

$config = yii\helpers\ArrayHelper::merge(
    require __DIR__ . '/common/сonfig/main.php',
    require __DIR__ . '/socket/сonfig/main.php',
);

$application = new Application($config);
$application->run();

To start the server you need to run the command:

php <project_root>/run start

For testing, we can use the Postman program. You need to create a web socket connection. You need to create a web socket connection with port ws://0.0.0.0:8080, which is specified in the application configuration.

Message Body Format.

{
  "method": "echo:echo",
  "payload": {}
}

The method parameter is similar to a regular url, the only difference is in the separator : What is specified in the payload parameter You can get them in the action arguments.

统计信息

  • 总下载量: 254
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-11-13