@nevalek

Как записывать в БД данные, получаемые по websocket?

Как мне добавлять данные в БД(postgreSQL) получаемые с websocket подключения. Какие инструменты использовать?
Я попробовал использовать socketio
import { Server } from "socket.io";
import { createAdapter } from "@socket.io/postgres-adapter";
import pg from "pg";

const io = new Server();

const pool = new pg.Pool({
  user: "postgres",
  host: "localhost",
  database: "postgres",
  password: "changeit",
  port: 5432,
});

io.on('connection', socket => {
    socket.on('mess', async (mess) => {
        try {

                pool.query('INSERT INTO coins (namecoin, exchange, bids, asks) VALUES ($1, $2, $3, $4) ON CONFLICT (namecoin, exchange) DO UPDATE SET bids = $3, asks = $4', [mess.symbol, mess.exchange, mess.bids, mess.asks]);
            console.log(mess)
        } catch (e) {
            console.log(e.message)
        }
    })
})

pool.on("error", (err) => {
  console.error("Postgres error", err);
});

io.adapter(createAdapter(pool));
io.listen(3000);


подключаюсь как клиент
import { io } from "socket.io-client"
const gate = io('http://localhost:3000/')

gate.on("connect", ()=>{
    console.log('client connect')
})

//подключаюсь к бирже получаю данные и отправляю
gate.emit('mess', coin)

через некоторое время, появляется ошибка
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory


подсказали, что это утечка памяти, но я так и не понял как ее найти.
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
те же самые что и без websocket, ты реальную проблему озвучь, а то выходит, даже не сделал ни одной попытки, а уже сразу побежал сюда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы