Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
3 / 2 / 1
Регистрация: 17.08.2018
Сообщений: 81
1

Как узнать что было добавлена новая запись в бд и вывести её

03.10.2018, 21:29. Показов 658. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня чат на sse, всё выводится, кроме введённого мною сообщения, почему может быть так?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
include "../php/connect.php";
header("Content-Type: text/event-stream\n\n");
header("Cache-Control: no-cache");
$query = mysqli_query($link, "SELECT msg, id from messages");
$messages = array();
 
while (1) {
echo "event: ping\n";
 
while($result = mysqli_fetch_array($query))
{
    array_push($messages, $result['msg']);
    echo 'data: '.$result['msg']."\n\n";
}
  
  ob_end_flush();
  flush();
}
?>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
var eventSource = new EventSource('/config/sse_server');
 
eventSource.onopen = function(e) {
  console.log("Connection has opened");
};
 
eventSource.onmessage = function(e) {
  console.log("get new data");
  var messages = document.getElementsByClassName("messages")[0];
  var child_div_messages = document.createElement('div');
  child_div_messages.innerHTML = e.data;
  messages.appendChild(child_div_messages);
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2018, 21:29
Ответы с готовыми решениями:

Как при открытии формы РС узнать что запись новая
Нужен аналог Объект.Ссылка.Пустая() для документов и справочников

IP адрес, как сделать, что бы не возможно было узнать настоящий IP
Скажите, пожалуйста, если пользоваться прокси сервером, то можно ли каким то образом определить...

Как узнать, что было выбрано в динамически созданном ComboBox
Здравствуйте уважаемые форумчани, подскажите пожалуйста в одном вопросе. Я динамически создаю...

Как узнать, что приложение было запущено при помощи NFC метки?
Добрый день, у меня такой вопрос. Как узнать что приложение было запущено при помощи NFC метки?

4
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
03.10.2018, 21:37 2
Цитата Сообщение от tilda_2311 Посмотреть сообщение
У меня чат на sse, всё выводится, кроме введённого мною сообщения, почему может быть так?
У тебя подход не верный. В твоем случае нужно периодически запрашивать из бд записи с id большим чем был на предыдущей итерации, но это будет так себе решение.
Как сделать чат на php
0
3 / 2 / 1
Регистрация: 17.08.2018
Сообщений: 81
03.10.2018, 21:47  [ТС] 3
Jewbacabra, Почему так себе?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
03.10.2018, 21:50 4
Цитата Сообщение от tilda_2311 Посмотреть сообщение
Почему так себе?
Потому что такой подход требует по 1 процессу на каждого клиента, что способно положить сервер уже при небольшом количестве клиентов.
0
3 / 2 / 1
Регистрация: 17.08.2018
Сообщений: 81
03.10.2018, 21:59  [ТС] 5
Jewbacabra, почему вот так не работает, постояно новое соединение открывается
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
include "../php/connect.php";
header("Content-Type: text/event-stream\n\n");
header("Cache-Control: no-cache");
$query = mysqli_query($link, "SELECT msg from messages");
 
while (1)
 {
echo "event: ping\n";
 
$last_id = 0;
 
if($last_id != insert_id($link))
{
    
    while($result = mysqli_fetch_array($query))
    {
        echo 'data: '.$result['msg']."\n\n";
        
    }
    $last_id = insert_id($link);
} 
 
ob_end_flush();
 flush();
}
?>
0
03.10.2018, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2018, 21:59
Помогаю со студенческими работами здесь

Как вывести изображение, чтобы нельзя было узнать реальное местоположение файла изображения?
Я так подозреваю что с помощью скриптов. Помогите с кодом, плиз!!

Как узнать, что пользователь уже прочитал запись?
Всем привет! Сделал страницу новостей на сайте, теперь хочу сделать так, чтобы когда я добавлял...

Как узнать что в базе данных появилась запись?
Добрый день, я создаю приложение по обмену текстовыми сообщениями. В базе данных у меня есть...

ADO.Recordset - Как узнать, что запись уже редактируется
Если многопользовательский вариант при доступе ADO.Recordset как узнать что запись кем то...

Узнать о том, что на комьютере пользователем было изменено время
Такая задача: два(или больше) экземпляра программы запущены на разных компьютерах, где системное...

Запрос: Добавить запись при условии, что такого значения не было
Есть список предметов в таблице ИГРУШКИ id | toys Запрос должен добавить новый предмет &quot;мяч&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru