Я пытаюсь создать индивидуальный ответ между пользователем и администратором, используя laravel и pusher. Пользователь не вошел в систему, просто посетитель. Когда пользователь посещает сайт, они будут печатать что-то и отправлять его администратору. Если какой-либо администратор находится в сети, он нажмет кнопку «Да» или «Нет», и тогда он будет отправлен обратно ПОЛЬЗОВАТЕЛЮ, который его отправил.
Моя проблема в том, что я не могу заставить толкатель отправлять ответы. Я видел эту Pusher одну в одной структуре чата, но я не понимаю, как в моем сценарии это не чат, а более конкретный для чата.
В любом случае я пытался использовать идентификатор сеанса, но это не сработало, поскольку пользователь и администратор не находятся в одном браузере. Я подумал о том, чтобы как-то отправить идентификатор сеанса с уведомлением о сообщении-толкателем, но я, похоже, знал, как администратор находится на странице / admin / events, пока пользователь находится на домашней странице.
Это мой код
push.js
var pusher = new Pusher('MY KEY'); var channel = pusher.subscribe ('client'); channel.bind('general_response', addMessage); var channel = pusher.subscribe ('customer_response'); //bind to new_response on the channel channel.bind('message', addWaitingResponse); //user function addMessage (data) { //create list item var li = $('<div class="response_message"></div>'); //Get text properity from data li.text(data.text); //hide it li.hide(); //prepend to messages $('#messages').prepend(li); li.slideDown(); } //admin function addWaitingResponse(data) { var li = $('<div class="waiting_approve"> </div> '); li.text(data.text); li.hide(); $('#WaitingNotification').prepend(li); li.slideDown(); }
подписка и прослушивание
<?php namespace Scan\Subscriber; class NotificationEventSubscriber { private $_pusher; public function __construct() { $this->_pusher = new \Pusher($_ENV['app_key'], $_ENV['app_secret'], $_ENV['app_id']); } //message to admin public function onCreate($event) { //$pusher = new \Pusher($_ENV['app_key'], $_ENV['app_secret'], $_ENV['app_id']); $data = array('text' => $event->track_no 'is awaiting approval'); $this->_pusher->trigger('customer_response', 'message', $data); } //message to user public function onUpdate($event) { /* | Notify customer */ $message = array('text' => $event->track_no' has been approved '); $this->_pusher->trigger('client', 'general_response', $message); } public function subscribe($events) { $events->listen('notification.insert','Scan\Subscriber\NotificationEventSubscriber@onCreate'); $events->listen('notification.update','Scan\Subscriber\NotificationEventSubscriber@onUpdate'); } }
В laravel, когда пользователь отправляет запросы, я регистрирую и запускаю событие. Вышеприведенный код показывает, как я показываю сообщение пользователю и администратору
Мой вопрос: как сделать ответ администратора ТОЛЬКО отправленным пользователю, который отправил запрос? Большое спасибо.