Wywałanie eventu z socket.io z poziomu serwera tcp

0

Cześć wszystkim,

Mam problem z socketami. Nie wiem gdzie tkwi problem. Ponizej kod:

const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io').listen(server);
const PORT = 3000;

server.listen(PORT, function () {
    console.log('Server is running on port: ' + PORT);
});

io.sockets.on('connection', function (socket) {
    socket.on('message', function (message) {
        console.log('message: ' + message);
    });

    socket.on('close', function (err) {
        console.log('Port closed!');
    });

    socket.on('error', function (err) {
        console.error('error', err);
    });
});

// TCP socket server
var tcpServer = net.createServer(function () {
    console.log('TCP server running');
});

tcpServer.on('connection', function (socket) {
    socket.on('data', function (data) {

        io.emit('message', 'test'); // I way

        for (let g in io.sockets.sockets) {  // II way
            var client = io.sockets.sockets[g];
            console.log('client.id  ' + client.id);
            client.emit('message', 'test');
        }
    });

    socket.on("error", (err) => {
        console.log(err.stack);
    }
    );
});
tcpServer.listen(1337);

Problem polaga na tym, ze chcę z poziomu serwera tcp wywołać event 'message' z socket.io powyżej. Nie krzyczy, że mam błąd ale też nie działa. Co robię nie tak? Próbówałem na dwa sposoby. Oznaczyłem je komentarzami I way, II way. Co robie źle?

0

Spróbuj wyemitować na socket

socket.emit('message', 'test');

W oficjalnej dokumentacji jest zakładka z listą wszystkich możliwych sposobów na wysyłanie wiadomości:
https://socket.io/docs/emit-cheatsheet/

1 użytkowników online, w tym zalogowanych: 0, gości: 1