当前位置: 首页 > 知识库问答 >
问题:

接收socket.io消息2次

甄鹏云
2023-03-14
$("#view-button").click(function () {
    console.log("button clicked");
    var textInfo = {
        msg: $("#message-field").val(),
        date: $("#date-field").val()
    }  
    socket.emit("text request", textInfo);
});
socket.on("text request", function(textInfo) {
    var textData;
    if (date >= 6) {
        textData = "beginning";
    else {
        textData = "end";
    }
    socket.emit("text", textData);
}
socket.on("text", function(textData) {
    console.log(textData);
    console.log("text data received");
});

共有1个答案

湛宜春
2023-03-14

emit将发送到所有客户端,包括发送者。

broadcast.emit将把消息发送到除新创建的连接之外的所有其他客户端

因此,在您的例子中,您使用emit,在这两个点上,这样使消息接收2次。

 类似资料:
  • 问题内容: 我正在尝试用两个客户端实现一个系统,其中一个客户端发送一条消息,而另一个客户端将接收该消息。下图将以更直观的方式对其进行解释: 因此,客户端1将消息发送到服务器(此工作正常),服务器接收到“推送”消息并发出应由客户端2接收的“弹出”消息。这里的问题是客户端2从未收到“流行”消息。:( 这是所有代码。 SERVER.JS 客户1(aka mobile.html) 客户2(aka web.

  • 在使用SocketIO的时候,消息将被作为活动(event)的两端接收。在客户端使用JavaScript回叫信号。使用Flask-SocketIO服务器,需要为这些活动注册处理器(handler),类似于视图函数怎样处理路由。 下面的例子是为一个未命名的活动创建了一个服务端的活动处理器(event handler): @socketio.on('message') def handle_mess

  • 26.4 接收消息 26.4.1 同步接收 虽然 JMS 通常与异步处理相关,但它也可以同步地消费消息。可重载的receive(..)方法提供了这个功能。在同步接收期间,调用线程阻塞,直到接收到消息。这可能是一个危险的操作,因为调用线程可能无限期地被阻塞。receiveTimeout属性指定了接收者等待消息的超时时间。 26.4.2 异步接收 - 消息驱动的 POJOs Spring 还可以通过使

  • 20.4. 接收消息 20.4.1. 同步接收 虽然JMS一般都和异步处理相关,但它也可以同步的方式使用消息。可重载的receive(..)方法提供了这种功能。在同步接收中,接收线程被阻塞直至获得一个消息,有可能出现线程被无限阻塞的危险情况。属性receiveTimeout指定了接收器可等待消息的延时时间。 20.4.2. 异步接收 - 消息驱动的POJOs 类似于EJB世界里流行的消息驱动bea

  • 当监听设备后,会返回接收到的消息数据。 请求方式: 无 返回值: "|4|2|5|message|" 返回接收到的消息 参数 message 返回的消息内容

  • 是否有一种方法可以确保socket.io-client消息被socket.io服务器接收?我看到socket.io中有一个确认机制。如果没有收到确认,我们是否可以重试发送消息(这方面是否有任何标准模式),或者socket.io-client是否会在规定的时间内没有收到确认时重试发送消息?