Как отправить данные на laravel даже с клиента с помощью socket.io - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь использовать socket.io. и хочу отправить переменную из моего javascript (на стороне клиента) в событие laravel, а затем передать ее обратно клиенту. Я прокомментировал в своем коде, что я хочу.

ниже мой код:

Событие:

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;

class MarketUpdate implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets;

    public $data;
    public function __construct()
    {

        $this->data = [
            'abcd' => $id , /// I need to get this ID from client side.
        ];

    }

    public function broadcastOn()
    {
        return array('channel_test');
    }
}

Клиент JS:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"></script>
    <script>
var id = '9';
        var socket = io('http://localhost:8890');
        socket.on("channel_test:App\\Events\\EventNew", function (message) {
// I Want to send id here somewhere and display
            $('#abcd').html(message.data.abcd);
        });
    </script>

1 Ответ

0 голосов
/ 27 июня 2019

Как я понимаю, нет одного способа, кроме как сделать сам процессор / обработчик. Я думаю, тебе нужно посмотреть что-то вроде Ratchet. У нативной сборки laravel нет методов для работы с вашими сообщениями. Там есть система вещания.

Вы отправляете данные с клиента с помощью ajax, а затем laravel отправляете данные всем подписанным клиентам с широковещательной рассылкой

...