• 14-12-2024, 00:46:53
    #1
    Merhaba arkadaşlar bir chat uygulaması yapıyorum bireysel ve grup sohbetler mevcut.
    " /send-message " 'e PHP ile jwt token ile mesajı post ediyorum ve io.to(chatId).emit('newMessage', messageData); buraya ekliyorum. ancak frontend'te yeni mesajları dinlemeye çalışıyorum ama hiçbir yanıt alamıyorum.

       socket.emit('listen', jwtDetail);
            socket.on('newMessage', (messageData) => {
              try {
                console.log('Yeni mesaj alındı:', messageData);
              } catch (error) {
                console.log('Mesaj alma hatası:', error.message);
              }
            });


    const express = require('express');
    const http = require('http');
    const { Server } = require('socket.io');
    const jwt = require('jsonwebtoken');
    // Uygulama ayarları
    const app = express();
    const server = http.createServer(app);
    const io = new Server(server);
    const JWT_SECRET = 'jwtKodum';
    // Mesajların saklanacağı bellek
    const chats = {}; // { chatId: [ { senderId, message, createdAt, ... } ] }
    // Statik dosyalar için klasör
    app.use(express.static('public'));
    // Body parsing middleware
    app.use(express.json()); // JSON verisini almak için
    // Socket.IO bağlantı işlemleri
    io.on('connection', (socket) => {
      console.log('Bir kullanıcı bağlandı:', socket.id);
      // listen(jwt) eventi dinlenir
      socket.on('listen', (jwtToken) => {
        try {
          // JWT doğrula ve çöz
          const decoded = jwt.verify(jwtToken, JWT_SECRET);
          const chatId = decoded.chat_id;
          // Odaya katıl
          socket.join(chatId);
          console.log(`Kullanıcı ${socket.id}, ${chatId} odasına katıldı.`);
          // Daha önce gelen mesajları gönder
          if (chats[chatId]) {
            socket.emit('messages', chats[chatId]);
          }
        } catch (error) {
          console.error('JWT doğrulama hatası:', error.message);
          socket.emit('error', 'Geçersiz token.');
        }
      });
      // message gönderme eventi dinlenir
      socket.on('sendMessage', (messageJwt, callback) => {
        try {
          // Mesaj JWT doğrula ve çöz
          const decoded = jwt.verify(messageJwt, JWT_SECRET);
          const { chatId, senderId, message, createdAt, filesHave, files } = decoded.data;
          // Mesajı chat[chatId] dizisine ekle
          if (!chats[chatId]) {
            chats[chatId] = [];
          }
          const messageData = { senderId, message, createdAt, filesHave, files };
          chats[chatId].push(messageData);
          console.log(`Mesaj ${chatId} odasına eklendi:`, messageData);
          // Mesajı odaya yayınla
          io.to(chatId).emit('newMessage', messageData);
          // Başarıyla tamamlandığında callback'i çağır
          callback({ status: 'success' });
        } catch (error) {
          console.error('JWT doğrulama hatası:', error.message);
          
          // Hata durumunda callback ile yanıt gönder
          callback({ status: 'error', error: 'Geçersiz mesaj token.' });
        }
      });
      // Kullanıcı bağlantıyı kapattığında
      socket.on('disconnect', () => {
        console.log('Bir kullanıcı ayrıldı:', socket.id);
      });
    });
    // POST endpoint oluşturulması
    app.post('/send-message', (req, res) => {
      const { messageJwt } = req.body;  // Gelen veri sadece messageJwt
      try {
        
        const decoded = jwt.verify(messageJwt, JWT_SECRET);
        const { chatId, senderId, message, createdAt, filesHave, files } = decoded.data;
        // Mesajı chat[chatId] dizisine ekle
        if (!chats[chatId]) {
          chats[chatId] = [];
        }
        const messageData = { senderId, message, createdAt, filesHave, files };
        chats[chatId].push(messageData);
        console.log(`Mesaj ${chatId} odasına eklendi:`, messageData);
        // Mesajı odaya Socket.IO üzerinden gönder
        io.to(chatId).emit('newMessage', messageData);
        // Başarıyla tamamlanır
        res.status(200).json({ status: 'success', message: 'Mesaj başarıyla gönderildi.' , data : messageData });
      } catch (error) {
        console.error('JWT doğrulama hatası:', error.message);
        res.status(400).json({ status: 'error', message: 'Geçersiz token.' });
      }
    });
    // Sunucuyu başlat
    const PORT = 3000;
    server.listen(PORT, () => {
      console.log(`Sunucus ${PORT} portunda çalışıyor.`);
    });
  • 14-12-2024, 00:50:55
    #2
    const express = require('express');
    const http = require('http');
    const { Server } = require('socket.io');
    const jwt = require('jsonwebtoken');
    
    // Uygulama ayarları
    const app = express();
    const server = http.createServer(app);
    const io = new Server(server);
    const JWT_SECRET = 'jwtKodum';
    
    // Mesajların saklanacağı bellek
    const chats = {}; // { chatId: [ { senderId, message, createdAt, ... } ] }
    
    // Statik dosyalar için klasör
    app.use(express.static('public'));
    
    // Body parsing middleware
    app.use(express.json()); // JSON verisini almak için
    
    // Socket.IO bağlantı işlemleri
    io.on('connection', (socket) => {
      console.log('Bir kullanıcı bağlandı:', socket.id);
    
      // listen(jwt) eventi dinlenir
      socket.on('listen', (jwtToken) => {
        try {
          // JWT doğrula ve çöz
          const decoded = jwt.verify(jwtToken, JWT_SECRET);
          const chatId = decoded.chat_id;
    
          // Odaya katıl
          socket.join(chatId);
          console.log(`Kullanıcı ${socket.id}, ${chatId} odasına katıldı.`);
    
          // Daha önce gelen mesajları gönder
          if (chats[chatId]) {
            socket.emit('messages', chats[chatId]);
          }
        } catch (error) {
          console.error('JWT doğrulama hatası:', error.message);
          socket.emit('error', 'Geçersiz token.');
        }
      });
    
      // sendMessage eventi dinlenir
      socket.on('sendMessage', (messageJwt, callback) => {
        try {
          // Mesaj JWT doğrula ve çöz
          const decoded = jwt.verify(messageJwt, JWT_SECRET);
          const { chatId, senderId, message, createdAt, filesHave, files } = decoded.data;
    
          // Mesajı chat[chatId] dizisine ekle
          if (!chats[chatId]) {
            chats[chatId] = [];
          }
    
          const messageData = { senderId, message, createdAt, filesHave, files };
          chats[chatId].push(messageData);
          console.log(`Mesaj ${chatId} odasına eklendi:`, messageData);
    
          // Mesajı odaya yayınla
          io.to(chatId).emit('newMessage', messageData);
    
          // Başarıyla tamamlandığında callback'i çağır
          callback({ status: 'success' });
        } catch (error) {
          console.error('JWT doğrulama hatası:', error.message);
    
          // Hata durumunda callback ile yanıt gönder
          callback({ status: 'error', error: 'Geçersiz mesaj token.' });
        }
      });
    
      // Kullanıcı bağlantıyı kapattığında
      socket.on('disconnect', () => {
        console.log('Bir kullanıcı ayrıldı:', socket.id);
      });
    });
    
    // POST endpoint oluşturulması
    app.post('/send-message', (req, res) => {
      const { messageJwt } = req.body;  // Gelen veri sadece messageJwt
      try {
        // JWT doğrula ve çöz
        const decoded = jwt.verify(messageJwt, JWT_SECRET);
        const { chatId, senderId, message, createdAt, filesHave, files } = decoded.data;
    
        // Mesajı chat[chatId] dizisine ekle
        if (!chats[chatId]) {
          chats[chatId] = [];
        }
    
        const messageData = { senderId, message, createdAt, filesHave, files };
        chats[chatId].push(messageData);
        console.log(`Mesaj ${chatId} odasına eklendi:`, messageData);
    
        // Mesajı odaya Socket.IO üzerinden gönder
        io.to(chatId).emit('newMessage', messageData);
    
        // Başarıyla tamamlanır
        res.status(200).json({ status: 'success', message: 'Mesaj başarıyla gönderildi.', data: messageData });
      } catch (error) {
        console.error('JWT doğrulama hatası:', error.message);
        res.status(400).json({ status: 'error', message: 'Geçersiz token.' });
      }
    });
    
    // Sunucuyu başlat
    const PORT = 3000;
    server.listen(PORT, () => {
      console.log(`Sunucus ${PORT} portunda çalışıyor.`);
    });



    const socket = io(); // Bağlantıyı başlat
    
    // listen eventini tetikle
    const jwtDetail = "YOUR_JWT_TOKEN_HERE";  // JWT token'ınızı burada kullanın
    socket.emit('listen', jwtDetail);
    
    // Yeni mesaj alındığında işleme
    socket.on('newMessage', (messageData) => {
      try {
        console.log('Yeni mesaj alındı:', messageData);
        // Mesajı UI'de görüntüleme veya başka işlem yapabilirsiniz
      } catch (error) {
        console.log('Mesaj alma hatası:', error.message);
      }
    });
    
    // Hata durumunda alınacak mesaj
    socket.on('error', (errorMessage) => {
      console.log('Hata:', errorMessage);
    });
  • 14-12-2024, 00:53:36
    #3
    Onefire adlı üyeden alıntı: mesajı görüntüle
    const express = require('express');
    const http = require('http');
    const { Server } = require('socket.io');
    const jwt = require('jsonwebtoken');
    
    // Uygulama ayarları
    const app = express();
    const server = http.createServer(app);
    const io = new Server(server);
    const JWT_SECRET = 'jwtKodum';
    
    // Mesajların saklanacağı bellek
    const chats = {}; // { chatId: [ { senderId, message, createdAt, ... } ] }
    
    // Statik dosyalar için klasör
    app.use(express.static('public'));
    
    // Body parsing middleware
    app.use(express.json()); // JSON verisini almak için
    
    // Socket.IO bağlantı işlemleri
    io.on('connection', (socket) => {
      console.log('Bir kullanıcı bağlandı:', socket.id);
    
      // listen(jwt) eventi dinlenir
      socket.on('listen', (jwtToken) => {
        try {
          // JWT doğrula ve çöz
          const decoded = jwt.verify(jwtToken, JWT_SECRET);
          const chatId = decoded.chat_id;
    
          // Odaya katıl
          socket.join(chatId);
          console.log(`Kullanıcı ${socket.id}, ${chatId} odasına katıldı.`);
    
          // Daha önce gelen mesajları gönder
          if (chats[chatId]) {
            socket.emit('messages', chats[chatId]);
          }
        } catch (error) {
          console.error('JWT doğrulama hatası:', error.message);
          socket.emit('error', 'Geçersiz token.');
        }
      });
    
      // sendMessage eventi dinlenir
      socket.on('sendMessage', (messageJwt, callback) => {
        try {
          // Mesaj JWT doğrula ve çöz
          const decoded = jwt.verify(messageJwt, JWT_SECRET);
          const { chatId, senderId, message, createdAt, filesHave, files } = decoded.data;
    
          // Mesajı chat[chatId] dizisine ekle
          if (!chats[chatId]) {
            chats[chatId] = [];
          }
    
          const messageData = { senderId, message, createdAt, filesHave, files };
          chats[chatId].push(messageData);
          console.log(`Mesaj ${chatId} odasına eklendi:`, messageData);
    
          // Mesajı odaya yayınla
          io.to(chatId).emit('newMessage', messageData);
    
          // Başarıyla tamamlandığında callback'i çağır
          callback({ status: 'success' });
        } catch (error) {
          console.error('JWT doğrulama hatası:', error.message);
    
          // Hata durumunda callback ile yanıt gönder
          callback({ status: 'error', error: 'Geçersiz mesaj token.' });
        }
      });
    
      // Kullanıcı bağlantıyı kapattığında
      socket.on('disconnect', () => {
        console.log('Bir kullanıcı ayrıldı:', socket.id);
      });
    });
    
    // POST endpoint oluşturulması
    app.post('/send-message', (req, res) => {
      const { messageJwt } = req.body;  // Gelen veri sadece messageJwt
      try {
        // JWT doğrula ve çöz
        const decoded = jwt.verify(messageJwt, JWT_SECRET);
        const { chatId, senderId, message, createdAt, filesHave, files } = decoded.data;
    
        // Mesajı chat[chatId] dizisine ekle
        if (!chats[chatId]) {
          chats[chatId] = [];
        }
    
        const messageData = { senderId, message, createdAt, filesHave, files };
        chats[chatId].push(messageData);
        console.log(`Mesaj ${chatId} odasına eklendi:`, messageData);
    
        // Mesajı odaya Socket.IO üzerinden gönder
        io.to(chatId).emit('newMessage', messageData);
    
        // Başarıyla tamamlanır
        res.status(200).json({ status: 'success', message: 'Mesaj başarıyla gönderildi.', data: messageData });
      } catch (error) {
        console.error('JWT doğrulama hatası:', error.message);
        res.status(400).json({ status: 'error', message: 'Geçersiz token.' });
      }
    });
    
    // Sunucuyu başlat
    const PORT = 3000;
    server.listen(PORT, () => {
      console.log(`Sunucus ${PORT} portunda çalışıyor.`);
    });

    const socket = io(); // Bağlantıyı başlat
    
    // listen eventini tetikle
    const jwtDetail = "YOUR_JWT_TOKEN_HERE";  // JWT token'ınızı burada kullanın
    socket.emit('listen', jwtDetail);
    
    // Yeni mesaj alındığında işleme
    socket.on('newMessage', (messageData) => {
      try {
        console.log('Yeni mesaj alındı:', messageData);
        // Mesajı UI'de görüntüleme veya başka işlem yapabilirsiniz
      } catch (error) {
        console.log('Mesaj alma hatası:', error.message);
      }
    });
    
    // Hata durumunda alınacak mesaj
    socket.on('error', (errorMessage) => {
      console.log('Hata:', errorMessage);
    });
    Dostum sence ben ai 'ye sormamış olabilir miyim
  • 14-12-2024, 00:54:35
    #4
    ONURERDGN adlı üyeden alıntı: mesajı görüntüle
    Dostum sence ben ai 'ye sormamış olabilir miyim
    apolloya neyin ne olduğunu açıklamasını istedim ve kendim düzenledim
  • 14-12-2024, 00:55:44
    #5
    Onefire adlı üyeden alıntı: mesajı görüntüle
    apolloya neyin ne olduğunu açıklamasını istedim ve kendim düzenledim
    Kodta hiçbir değişiklik yok sadece socket bağlantısı için vs. buraya kalabalık olmasın diye eklemediğim bir kaç kod var onları eklemiş.