Эмиссия событий Socket IO

1

Я пытаюсь заставить клиента говорить с сервером, и я не могу получить события, которые испускает клиент. Соединение устанавливается как сервер console.logs, connected to localhost:61201 всякий раз, когда клиент подключается; но нет ответа от клиентов, которые периодически выдаются клиентом.

server.js

const port = 61201;
const ipAddress = "127.0.0.1"

var http = require('http');
var io = require('socket.io');
var server = http.createServer();
server.listen(port, ipAddress);
var socket = io.listen(server);

socket.on('connect', () => {
    console.log('connected to localhost:61201');
    socket.on('clientEvent', function (data) {
        console.log('message from the client:', data);
        socket.emit('serverEvent', "thanks server! for sending '" + data + "'");
    });
});

client.js

const port = 61201;
const ipAddress = "127.0.0.1";
const url = 'http://' + ipAddress + ':' + port;

var io = require('socket.io-client');

var socket = io(url);

socket.on('connect', () => {
    socket.on('serverEvent', function (data) {
        console.log('new message from the server:', data);
    });
    setInterval(function () {
        socket.emit('clientEvent', Math.random());
        console.log('message sent from the client');
    }, 3000);
});
  • 0
    какую версию socket-io и socket.io-client вы используете?
  • 0
    @MarksCasagrande 1.7.4
Теги:
socket.io

1 ответ

1
Лучший ответ

Вам нужно использовать объект socket который возвращает событие connect. Попробуй это

socket.on('connect', (clientSocket) => {
    console.log('connected to localhost:61201');
    clientSocket.on('clientEvent', function (data) {
        console.log('message from the client:', data);
        clientSocket.emit('serverEvent', "thanks server! for sending '" + data + "'");
    });
});
  • 0
    событие должно быть socket.on("connection", (clientSocket) => { ... });
  • 0
    @ Джер, я думаю, что оба работают socket.io/docs/server-api/#event-connect

Ещё вопросы

Сообщество Overcoder
Наверх
Меню