Я хочу получать уведомления в режиме реального времени для моего Beauty and Wellness POS-типа приложения, в котором пользователь (менеджер филиала магазина) кодирует транзакции, совершенные клиентом в его / ее филиале. Итак, я искал и нашел около Web Socket вещь и позже, Ratchet . Я ознакомился с демонстрацией того, как создать простое приложение для чата на socketo.me . Наконец я нашел romainrg ratchet_client . Это показывает, что подключенные клиенты могут отправлять сообщения через веб-сокеты с помощью веб-браузера, просто записав какое-то сообщение в поле ввода и указав, какой идентификатор пользователя пользователь хочет отправить в своем сообщении. С моей стороны, если я собираюсь интегрировать это, мне придется вручную отправлять уведомления для каждого пользователя в пользовательском интерфейсе.
Логика c, которую я хочу, чтобы мое приложение выполняло, заключается в том, что если менеджер филиала вошел в мое приложение, будут загружены уведомления магазина, назначенного ему / ей в базе данных, и будут сохранены предстоящие уведомления (например, когда заказанный клиент онлайн) в базе данных и будет добавляться автоматически где-то в пользовательском интерфейсе.
Я создал Booking.php
контроллер для обработки заказов клиентов. Теперь я хочу отправлять уведомления туда, где заказал филиал магазина. Я просто не могу понять, как отправлять уведомления, когда create_booking
запускается через веб-сокеты.
Это Booking.php
.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Booking extends CI_Controller
{
function __construct(){
parent::__construct();
$this->load->model(array(
'Booking_model' => 'booking',
'Notification_model' => 'notification'
));
}
public function create_booking(){
// Function to trigger send_booking_notification function
// that will notify store manager if customer booked online
$data = array(
'customer_id' => $this->input->post('customer_id'),
'customer_name' => $this->input->post('customer_name'),
'branch_id' => $this->input->post('branch_id'),
'service_id' => $this->input->post('service_id'),
'service_name' => $this->input->post('service_name'),
'date' => date('Y-m-d', strtotime($this->input->post('date'))),
'time' => $this->input->post('time'),
'remarks' => $this->input->post('remarks')
);
$result = $this->booking->create_booking($data);
if($result === 'success'){
$this->insert_notification($data);
$this->send_booking_notification($data);
}
echo $result;
}
public function send_booking_notification($data){
//TODO: implement push notification using web socket
}
public function insert_notification($data){
// Saves notification to database
$this->notification->insert_notification($data);
}
}
Может кто-нибудь помочь, пожалуйста? Из-за этого я выдергивал свои волосы 3 дня подряд. Я был бы очень признателен, если бы вы мне помогли.