я пытаюсь написать PHP-код, который будет транслировать значение определенного поля в базе данных, когда другая страница говорит это.
чтобы дать некоторый контекст, у меня есть пользовательский таймер, всегда открытый на странице, и я хочу, чтобы пользователь мог включить его через внешний аппаратный коммутатор, который обновляет поле в базе данных и сообщает серверу, чтобы передать это изменение , запустив таймер. если возможно, я бы хотел вообще отказаться от посредника и попросить, чтобы коммутатор сообщал серверу о передаче значения переключателя, запускающего таймер.
возможно ли то, что я предлагаю? Я начал использовать события, отправленные сервером, но у меня не получилось …
<?php
header('Content-Type: text/event-stream');
require "conf/config.php";
mysqli_report(MYSQLI_REPORT_STRICT);
try {
$con=mysqli_connect(DBSERVER,DBUSER,DBPASS,DBNAME);
} catch (Exception $exp) {
echo "<label style='font-weight:bold; color:red'>MySQL Server Connection Failed. </label>";
exit;
}
$query = 'SELECT SwitchPressed FROM live_timers WHERE Timer = 1';
$result = mysqli($con,$query);
$data = mysqli_fetch_assoc($result);
echo "data: {$data}\n\n";
flush();
И у меня есть это в моем контроллере,
var Events = new EventSource('latch.php');
Events.onmessage = function(event) {
console.log(event.data);
};
просто проверяю, работает ли что-то, к сожалению, вот так я не получаю сообщений … заранее спасибо за любую помощь
в MDN док, они используют while
цикл, который никогда не заканчивается (потому что это поток)
Других решений пока нет …