jakharbek/yii2-chat

Chat

Installs: 103

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 1

Type:yii2-extension

3.0 2019-04-10 15:43 UTC

This package is not auto-updated.

Last update: 2024-05-07 15:27:57 UTC


README

Chat

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist jakharbek/yii2-chat "*"

or add

"jakharbek/yii2-chat": "*"

to the require section of your composer.json file.

Directory Structure

api/                 api
assets/              assets
command/             daimons and console
dto/                 data transfer object
exceptions/          exceptions
factory/             factories
forms/               forms
interfaces/          interfaces
migrations/          migrations
models/              models
repositories/        repositories
services/            services

Usage

В данном расширение нет разделение разрешение и прав доступа, данную особеность осталось на ваши усмотрение для больее гибкости расширение.

Для начало использование вам следует применить миграции:

yii migrate --migrationPath=@vendor/jakharbek/yii2-chat/migrations

после вам нужно применить Bootstrap класс.

\jakharbek\chat\Bootstrap

API

Для его использование вам нужно подключить контроллер.

...
controllerMap => [
'server' => \jakharbek\chat\api\ChatController::class
]
...

или же можете скопировать его или взять от него наследование и подключить это тоже на ваше усмотрение

Подключение сокета

Запуск веб-сокета сервера

Вам нужно подключить в ваше консольное приложение контроеллер веб-сокета:

...
controllerMap => [
'server' => \jakharbek\chat\commands\ServerController::class
]
...

После запустить это консольную комманду как daimon. На пример

php yii server/start [port]

Подключение asset'а

\jakharbek\chat\assets\ChatAsset::register($this);

Пример подключение сокет клиента.

$js = <<<JS
var chat = new ChatClient("ws://localhost:8080",'{$token}','{chat_id}');
chat.onMessage = function(type,data,event){
    //сдесь будет ваша логика для UI
}
chat.init();
$(".msg_send_btn").click(function () {
    chat.sendMessage($('.write_msg').val());
});
JS;

$this->registerJs($js);