单击按钮触发socket.emit

时间:2019-01-09 11:23:52

标签: node.js socket.io

我正在尝试进行一些应用聊天,但是我无法使其正常工作

在我的app.js中:

var io = require('./io');

io.on('connection', function (socket) {
    socket.emit('news', {hello: 'world'});
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

io.on('error', function () {
    console.log("errr");
});

chat.js

$(() => {
    var socket = io.connect('http://localhost:3000');  

    $("#sendMessage").click(function () { 
        alert("click")
        socket.emit("news", { message: $("#message").val() })
    });

    socket.on('news', function (data) {
        console.log("test"+data);
    });
})

app.js中的socket.emit可以正常工作,我获得了chat.js上的信息,但我不知道为什么,socket.on没有收到来自单击按钮的消息。该按钮起作用,因为显示了警报,但没有发出任何警报。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您正在向componentDidMount发送消息(前端客户端应用程序),但仅在news上监听(在服务器上)。

尝试:

my other event

答案 1 :(得分:0)

以下代码可能会解决您的问题:

var io = require('./io');

io.on('connection', function (socket) {
    socket.emit('news', {hello: 'world'});
    socket.on('news', function (data) {
        console.log(data);
    });
});

io.on('error', function () {
    console.log("errr");
});