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?