تالار گفتمان nCIS.ir

نسخه‌ی کامل: سیستم چت آنلاین در Yii2 به صورت realtime
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.

a1552f

به کمک وب سوکت با استفاده از این مثال :
PHPWebSocket-Chat
برای پروژه یک سیستم چت راه اندازی کردم ، فقط چون فایل server.php رو به کمک خط فرمان اجرا میکنم دسترسی به session کاربری که داره پیام رو ارسال میکنه ندارم. چطوری میتونم توی dos به session  دسترسی داشته باشم

a1552f

میشه راهنمایی کنید چطور فایل server.php رو به کامپوننت yii تبدیل کنم
برای تبدیل به کامپوننت، باید کلاس رو از yiibaseComponent مشتق کنید و توی پوشه‌ی دلخواه (بعنوان مثال components در مسیر ریشه‌ی پروژه ذخیره کنید) و فضای نام رو به شکل صحیح مقداردهی کنید و فیلدهای public رو توی init مقداردهی اولیه کنید. ضمناً سعی کنید پارامترهای کلاس رو حتی‌الأمکان بصورت فیلد public تعریف کنید تا توی فایل config بتونین مقادیر اولیه رو تنظیم کنید. مثال:

<?php // stored inside components folder in project root path as MyComponent.php

namespace appcomponents;

use Yii;
use yiibaseComponent;

class MyComponent extends Component
{
    public $name;

    public function init()
    {
        if (is_null($this->name)) {
            $this->name = 'ncis.ir';
        }
        return parent::init();
    }

    public function show()
    {
        return '<div class="alert alert-info"><strong>' . $this->name . '</strong></div>';
    }
}

نحوه‌ی تعریف در فایل config/web.php :
...
'components' => [
    'mycomp' => [
        'class' => 'appcomponentsMyComponent',
        'name' => 'http://www.ncis.ir',
    ],
    ...
],
...

و نحوه‌ی استفاده:
<?= Yii::$app->mycomp->show() ?>