Merhaba, ajax ile sse kullanarak chat sohbet sistemi yapıyorum node.js hem kurulumu zor hemde iyi derecede bilmiyorum..
Sse anlik dinlemeler icin kullaniyorum birsey fark ettim request tek ama transfer kilobitleri uçuyor. Bu durum sunucu hosting vs tarafinda nasil bir geri donus yaptirir sizce?
Video linki
Sse icin kullandigim server tarafi
<?php
session_start();
use ClassesDB;
use ClassesLogin;
require_once('classes/DB.php');
require_once('classes/Login.php');
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$receiver = isset($_GET['receiver']) ? htmlspecialchars($_GET['receiver']) : '';
$anon_id = null;
if (strpos($receiver, 'anon-') !== false) {
$anon_id = substr($receiver, 6);
}
if (isset($receiver)) {
$params = [
'user_id' => Login::isLogged(),
'receiver' => $receiver,
'senderanon' => $anon_id
];
$query = 'SELECT messages.body, messages.receiver, messages.sender, messages.senderanon
FROM messages
WHERE (messages.receiver = :user_id OR messages.sender = :user_id)
AND (messages.receiver = :receiver OR messages.sender = :receiver)';
if ($anon_id !== null) {
$query .= ' AND messages.senderanon = :senderanon';
}
// Send updates every 0.5 seconds
while (true) {
try {
$messages = DB::_query($query, $params);
$messageData = [];
foreach ($messages as $message) {
$messageData[] = [
'body' => $message['body'],
'sender' => $message['sender'],
'senderanon' => $message['senderanon'],
];
}
echo "data: " . json_encode($messageData) . "nn";
ob_flush();
flush();
usleep(100000); // Sleep for 0.1 seconds
} catch (Exception $e) {
echo "data: {"error": "" . $e->getMessage() . ""}nn";
ob_flush();
flush();
break;
}
}
}
Javascript ajax sse kb'ler uçuyor bilgisi olan?
1
●80
- 16-08-2024, 01:19:13