Socket.io:从客户端发出不起作用

时间:2017-04-02 18:16:16

标签: javascript express websocket socket.io

我正在尝试在客户端上发出一个事件,但服务器根本没有响应。控制台中未显示消息('已接收!'),未启动以下事件。单击按钮时,事件必须发出。其他操作(例如向控制台输出消息)工作正常,但事件无法启动。问题是什么? onneonnection事件正常工作。

服务器:

class ChatHandlers {
    constructor() {
        this.names = {};

        this.connection = this.connection.bind(this);
        this.send = this.send.bind(this);
        this.message = this.message.bind(this);
    }

    connection(socket) {
        socket.emit('new_user', { 
            name: 'Example name'
        });
    }

    send(socket) {
        console.log('Received!');
        var ip = socket.handshake.address;
        io.sockets.emit('message', {
            name: ip,
            message: socket.message
        });
    }

    message(socket) {
        console.log('Success!');
    }
}

var handlers = new ChatHandlers();

io.on('connection', handlers.connection);
io.on('send', handlers.send);

客户端:

var socket = io.connect('http://localhost:8080/');

socket.on('connect', function (data) {
    socket.on('new_user', function (data) {
        console.log(data.name);
    });

    socket.on('message', function (data) {
        console.log(data);
    });

    $('#send').click(function() {
        socket.emit('send', {
            message: $('#mess').val()
        });

        $('#mess').val('');
    });

0 个答案:

没有答案