Я пытаюсь создать индивидуальный ответ между пользователем и администратором, используя laravel и толкатель. Пользователь не вошел в систему, просто посетитель. Когда пользователь посещает сайт, они будут печатать что-то и отправлять его администратору. Если какой-либо администратор находится в сети, он нажмет кнопку «Да» или «Нет», и тогда он будет отправлен обратно ПОЛЬЗОВАТЕЛЮ, который его отправил.Ответ один к одному с использованием толкателя
Моя проблема в том, что я не могу заставить толкать отправлять ответы. Я видел это Pusher one to one chat structure, но я не понимаю, как в моем сценарии это не чат, а более конкретный для чата.
В любом случае я попытался использовать идентификатор сеанса, но это не сработало, поскольку пользователь и администратор не находятся в одном браузере. Я подумал о том, чтобы как-то отправить идентификатор сеанса с уведомлением о сообщении-толкателем, но я, похоже, знал, как администратор находится на странице/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\[email protected]');
$events->listen('notification.update','Scan\Subscriber\[email protected]');
}
}
В Laravel, когда пользователь отправляет запросы, зарегистрироваться и уволить мероприятие. В приведенном выше коде показано, как я показываю сообщение пользователю и администратору
Мой вопрос: Как сделать ответ администратора ТОЛЬКО отправленным пользователю, который отправил запрос? Большое спасибо.
Спасибо @leggetter, что я сделал, это сохранить клиентский канал в базе данных, и просто убедитесь, что ответ идет на этот канал. еще раз спасибо – Baako