Kullanmanın en iyi yolu nedir socket.io expressjs uygulamasıyla mı?

0

Soru

Gerçek zamanlı bir sohbet uygulaması yazmak istiyorum socket.io ve sunucum ve uygulama dosyam ayrı olduğu için, onu kullanmak için nasıl yapılandırmam gerektiğine dair hiçbir fikrim yok socket.io uygulamamın diğer bölümlerinde örnek. Bu benim app.js dosya.

const express = require("express");
const pug = require("pug");
const app = express();

module.exports = app;

ve bu benim server.js dosya

const app = require("./app");
const mongoose = require("mongoose");
mongoose
  .connect(`mongodb://localhost:27017/${process.env.DATABASE}`)
  .then(() => {
    app.listen(process.env.PORT);
  })
  .catch((err) => {
    console.error(`connection failed: ${err}`);
  });

bir örnek oluşturmanın en iyi yolu nedir socket.io ve uygulamanın diğer bölümlerinde kullanmak için bağlantısını başlatın?

express node.js socket.io
2021-11-24 06:06:36
1

En iyi cevabı

1

Http'yi express uygulamasıyla kullanabilir ve ardından bu http bağlantısı üzerinden soketleri bağlayabilir ve içindeki konuları dinleyebilir ve yayabilirsiniz. io.on('connection')

const app = require("./app");
const mongoose = require("mongoose");
const http = require('http').Server(app);
const io = require('socket.io')(http);
mongoose
  .connect(`mongodb://localhost:27017/${process.env.DATABASE}`)
  .then(() => {
    app.listen(process.env.PORT);
    io.on('connection', socket => {
      console.log('socket connected',socket);
    });
  })
  .catch((err) => {
    console.error(`connection failed: ${err}`);
  });

Bu ikinci yolu tercih edeceğim.:

Uygulama.js

const express = require("express");
const pug = require("pug");
const app = express();
module.exports = app;

Hizmetçi.js

const app = require("./app");
const realtime = require("./realtime");
const mongoose = require("mongoose");
const server = require("http").Server(app);

mongoose
  .connect(`mongodb://localhost:27017/${process.env.DATABASE}`)
  .then(() => {
    app.listen(process.env.PORT);
    require("./realtime.js")(server);

  })
  .catch((err) => {
    console.error(`connection failed: ${err}`);
  });

Gerçek zamanlı.js

module.exports = (app) => {
    const io = require("socket.io")(app);
    io.on("connection", (socket) => {
      console.log("Socket connected")
    })
};
2021-11-24 06:33:04

bu yaklaşımla, sohbetleri yönetmek için gç örneğini diğer dosyalarda nasıl kullanabilirim?
Farid Ghaderi

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................