• 16-08-2024, 01:19:13
    #1
    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;
    }
    }
    }
  • 16-08-2024, 01:28:39
    #2
    🏆 Wordpress Uzmanı
    Merhaba, ücretli yardımcı olabilirim.