简体   繁体   中英

socketio: client is not receiving message

I am testing socketio to build a small chat application with several channels. I have managed to send data from the client to the server. And the server is sending back that the channel is created. However my client does not receive the message. Any idea?

Client side code: everything is working well except the two events "channel_already_exists" and "channel_created". The server is sending these events but the client does not seem to receive them as nothing appears in my console.

document.addEventListener('DOMContentLoaded', () => {

  // Connect to websocket
  var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);

  // When connected, the user can register his username
  socket.on('connect', () => {

    document.getElementById('new_channel').hidden = true;

    if (localStorage.username) {
      socket.emit('register', {'username': localStorage.username});
    } else {
        document.getElementById('registration').onsubmit = () => {
          const username = document.getElementById('username').value;
          localStorage.setItem('username', username);
          socket.emit('register', {'username': username});
        };
    }
  });

  socket.on('registered', () => {
    const username = localStorage.username;
    document.getElementById('registration').innerHTML = '';
    document.getElementById('new_channel').hidden = false;
    document.getElementById('welcome').innerHTML = `Welcome ${username}`;
  });

  document.getElementById('new_channel').onsubmit = () => {
    const channel_name = document.getElementById('channel_id').value;
    socket.emit('new_channel', {'channel_name': channel_name});
  };

  socket.on('channel_already_exists', () => {
    console.log('already exists');
    document.getElementById('channel_message').innerHTML = 'Channel already exists. Please select another name.';
  });

  socket.on('channel_created', channels => {
    console.log('channel created');
    document.getElementById('channel_message').innerHTML = 'Channel has been created.';
  });

});

server code on FLask:

import os
import requests

from flask import Flask, jsonify, render_template, request
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)

users = set()
channels = {}

@app.route("/")
def index():
    not_registered = True
    return render_template("index.html")

#Register new user
@socketio.on("register")
def on_register(data):
    print("register")
    username = data["username"]
    users.add(username)
    emit("registered")

@socketio.on("new_channel")
def on_new_channel(data):
    print("new_channel")
    channel_name = data["channel_name"]
    if channel_name in channels:
        print("channel_already_exists")
        emit("channel_already_exists")
    else:
        #create a new empty channel
        print("new_channel_created")
        channels[channel_name] = ""
        emit('channel_created', channels)

Client log when I try to create a new channel (ie when a submit "new_channel")

engine.io-client:socket socket error {"type":"TransportError"} +5s
socket.io.min.js (2,5342)

socket.io-client:manager error +5s Error: xhr poll error

engine.io-client:socket socket close with reason: "transport error" +1ms
socket.io.min.js (2,5342)

engine.io-client:polling transport open - closing +1ms
socket.io.min.js (2,5342)

engine.io-client:polling writing close packet +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open POST: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762262046-2&sid=6108efcd5e754d6c9befdcf33af618ed +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data 1:1 +1ms
socket.io.min.js (2,5342)

socket.io-client:manager close +3ms
socket.io.min.js (1,13697)

socket.io-client:socket close (transport error) +5s
socket.io.min.js (1,13697)

socket.io-client:manager will wait 770ms before reconnect attempt +1ms
socket.io.min.js (1,13697)

socket.io-client:manager attempting reconnect +789ms
socket.io.min.js (1,13697)

socket.io-client:manager readyState closed +0ms
socket.io.min.js (1,13697)

socket.io-client:manager opening http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

engine.io-client:socket creating transport "polling" +791ms
socket.io.min.js (2,5342)

engine.io-client:polling polling +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762262840-3 +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +0ms

engine.io-client:socket setting transport polling +0ms
socket.io.min.js (2,5342)

socket.io-client:manager connect attempt will timeout after 20000 +2ms
socket.io.min.js (1,13697)

engine.io-client:socket socket error {"type":"TransportError"} +1s
socket.io.min.js (2,5342)

socket.io-client:manager connect_error +1s
socket.io.min.js (1,13697)

socket.io-client:manager reconnect attempt error +0ms
socket.io.min.js (1,13697)

socket.io-client:manager will wait 1902ms before reconnect attempt +1ms
socket.io.min.js (1,13697)

engine.io-client:socket socket close with reason: "transport error" +1ms
socket.io.min.js (2,5342)

engine.io-client:polling transport not open - deferring close +1ms
socket.io.min.js (2,5342)

socket.io-client:manager attempting reconnect +1s
socket.io.min.js (1,13697)

socket.io-client:manager readyState closed +0ms
socket.io.min.js (1,13697)

socket.io-client:manager opening http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

engine.io-client:socket creating transport "polling" +2s
socket.io.min.js (2,5342)

engine.io-client:polling polling +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762265792-4 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +1ms

engine.io-client:socket setting transport polling +0ms
socket.io.min.js (2,5342)

socket.io-client:manager connect attempt will timeout after 20000 +3ms
socket.io.min.js (1,13697)

engine.io-client:polling polling got data [object ArrayBuffer] +13ms

engine.io-client:socket socket receive: type "open", data "{"sid":"ca6c4332a9f347eab56882912b70a309","upgrades":[],"pingTimeout":60000,"pingInterval":25000}" +1ms
socket.io.min.js (2,5342)

engine.io-client:socket socket open +1ms
socket.io.min.js (2,5342)

socket.io-client:manager open +15ms
socket.io.min.js (1,13697)

socket.io-client:socket transport is open - connecting +3s
socket.io.min.js (1,13697)

socket.io-client:manager reconnect success +1ms
socket.io.min.js (1,13697)

engine.io-client:socket starting upgrade probes +1ms
socket.io.min.js (2,5342)

engine.io-client:socket socket receive: type "message", data "0" +0ms
socket.io.min.js (2,5342)

socket.io-parser decoded 0 as %j +8s [object Object]

connect
index.js (11,5)

engine.io-client:polling polling +2ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762265812-5&sid=ca6c4332a9f347eab56882912b70a309 +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +0ms

socket.io-client:manager writing packet %j +5s [object Object]

socket.io-parser encoding packet %j +5s [object Object]

socket.io-parser encoded %j as [object Object] +0ms 2["register",{"username":"goeland"}]

engine.io-client:socket flushing 1 packets in socket +5s
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open POST: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762271133-6&sid=ca6c4332a9f347eab56882912b70a309 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data 37:42["register",{"username":"goeland"}] +0ms
socket.io.min.js (2,5342)

HTML1300: Une navigation s’est produite.
127.0.0.1:5000 (1,1)

socket.io-client:url parse http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

socket.io-client new io instance for http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

socket.io-client:manager readyState closed +0ms
socket.io.min.js (1,13697)

socket.io-client:manager opening http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

engine.io-client:socket creating transport "polling" +0ms
socket.io.min.js (2,5342)

engine.io-client:polling polling +2ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762271323-0 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +0ms

engine.io-client:socket setting transport polling +1ms
socket.io.min.js (2,5342)

socket.io-client:manager connect attempt will timeout after 20000 +4ms
socket.io.min.js (1,13697)

socket.io-client:manager readyState opening +0ms
socket.io.min.js (1,13697)

engine.io-client:polling polling got data [object ArrayBuffer] +46ms

engine.io-client:socket socket receive: type "open", data "{"sid":"ccc77d7deda843fa8a846527cb19e4db","upgrades":[],"pingTimeout":60000,"pingInterval":25000}" +3ms
socket.io.min.js (2,5342)

engine.io-client:socket socket open +1ms
socket.io.min.js (2,5342)

socket.io-client:manager open +50ms
socket.io.min.js (1,13697)

socket.io-client:socket transport is open - connecting +0ms
socket.io.min.js (1,13697)

engine.io-client:socket starting upgrade probes +0ms
socket.io.min.js (2,5342)

engine.io-client:socket socket receive: type "message", data "0" +1ms
socket.io.min.js (2,5342)

socket.io-parser decoded 0 as %j +0ms [object Object]

connect
index.js (11,5)

socket.io-client:manager writing packet %j +3ms [object Object]

socket.io-parser encoding packet %j +1ms [object Object]

socket.io-parser encoded %j as [object Object] +0ms 2["register",{"username":"goeland"}]

engine.io-client:socket flushing 1 packets in socket +2ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open POST: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762271378-1&sid=ccc77d7deda843fa8a846527cb19e4db +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data 37:42["register",{"username":"goeland"}] +1ms
socket.io.min.js (2,5342)

engine.io-client:polling polling +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762271379-2&sid=ccc77d7deda843fa8a846527cb19e4db +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +0ms

engine.io-client:polling polling got data [object ArrayBuffer] +36ms

engine.io-client:socket socket receive: type "message", data "2["registered",null]" +2ms
socket.io.min.js (2,5342)

socket.io-parser decoded 2["registered",null] as %j +41ms [object Object]

socket.io-client:socket emitting event %j +44ms registered,

registered
index.js (26,5)

engine.io-client:polling polling +3ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762271422-3&sid=ccc77d7deda843fa8a846527cb19e4db +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +1ms

new_channel
index.js (34,5)

socket.io-client:manager writing packet %j +5s [object Object]

socket.io-parser encoding packet %j +5s [object Object]

socket.io-parser encoded %j as [object Object] +0ms 2["new_channel",{"channel_name":"channel 3"}]

engine.io-client:socket flushing 1 packets in socket +5s
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open POST: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762276888-4&sid=ccc77d7deda843fa8a846527cb19e4db +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data 46:42["new_channel",{"channel_name":"channel 3"}] +1ms
socket.io.min.js (2,5342)

HTML1300: Une navigation s’est produite.
127.0.0.1:5000 (1,1)

socket.io-client:url parse http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

socket.io-client new io instance for http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

socket.io-client:manager readyState closed +0ms
socket.io.min.js (1,13697)

socket.io-client:manager opening http://127.0.0.1:5000 +0ms
socket.io.min.js (1,13697)

engine.io-client:socket creating transport "polling" +0ms
socket.io.min.js (2,5342)

engine.io-client:polling polling +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762277050-0 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +1ms

engine.io-client:socket setting transport polling +0ms
socket.io.min.js (2,5342)

socket.io-client:manager connect attempt will timeout after 20000 +3ms
socket.io.min.js (1,13697)

socket.io-client:manager readyState opening +0ms
socket.io.min.js (1,13697)

0: Unable to get property 'SavePersonalAndPaymentData' of undefined or null reference
Autoformfill_ContentScript.js (1,1)

engine.io-client:polling polling got data [object ArrayBuffer] +43ms

engine.io-client:socket socket receive: type "open", data "{"sid":"0409f655ccc642f68322c4a9f64c3b66","upgrades":[],"pingTimeout":60000,"pingInterval":25000}" +2ms
socket.io.min.js (2,5342)

engine.io-client:socket socket open +0ms
socket.io.min.js (2,5342)

socket.io-client:manager open +46ms
socket.io.min.js (1,13697)

socket.io-client:socket transport is open - connecting +0ms
socket.io.min.js (1,13697)

engine.io-client:socket starting upgrade probes +1ms
socket.io.min.js (2,5342)

engine.io-client:socket socket receive: type "message", data "0" +0ms
socket.io.min.js (2,5342)

socket.io-parser decoded 0 as %j +0ms [object Object]

connect
index.js (11,5)

socket.io-client:manager writing packet %j +2ms [object Object]

socket.io-parser encoding packet %j +0ms [object Object]

socket.io-parser encoded %j as [object Object] +0ms 2["register",{"username":"goeland"}]

engine.io-client:socket flushing 1 packets in socket +2ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open POST: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762277100-1&sid=0409f655ccc642f68322c4a9f64c3b66 +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data 37:42["register",{"username":"goeland"}] +0ms
socket.io.min.js (2,5342)

engine.io-client:polling polling +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762277101-2&sid=0409f655ccc642f68322c4a9f64c3b66 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +0ms

engine.io-client:polling polling got data [object ArrayBuffer] +41ms

engine.io-client:socket socket receive: type "message", data "2["registered",null]" +2ms
socket.io.min.js (2,5342)

socket.io-parser decoded 2["registered",null] as %j +45ms [object Object]

socket.io-client:socket emitting event %j +47ms registered,

registered
index.js (26,5)

engine.io-client:polling polling +3ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762277148-3&sid=0409f655ccc642f68322c4a9f64c3b66 +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +1ms

engine.io-client:socket writing ping packet - expecting pong within 60000ms +25s
socket.io.min.js (2,5342)

engine.io-client:socket flushing 1 packets in socket +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open POST: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762302107-4&sid=0409f655ccc642f68322c4a9f64c3b66 +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data 1:2 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling polling got data [object ArrayBuffer] +17ms

engine.io-client:socket socket receive: type "pong", data "undefined" +1ms
socket.io.min.js (2,5342)

engine.io-client:polling polling +1ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr poll +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr open GET: http://127.0.0.1:5000/socket.io/?EIO=3&transport=polling&t=1574762302126-5&sid=0409f655ccc642f68322c4a9f64c3b66 +0ms
socket.io.min.js (2,5342)

engine.io-client:polling-xhr xhr data null +0ms

Server log:

C:\Users\rober\project2>flask run
 * Serving Flask app "application.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
[2019-11-26 10:57:44,233] WARNING in __init__: Flask-SocketIO is Running under Werkzeug, WebSocket is not available.
Server initialized for threading.
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Invalid session e0e081d67cbf4189b990c1dc103da589
127.0.0.1 - - [26/Nov/2019 10:57:44] "GET /socket.io/?EIO=3&transport=polling&t=1574762243279-331&sid=e0e081d67cbf4189b990c1dc103da589 HTTP/1.1" 400 -
f3cc277e7bec49c8b2eba1272d102a6c: Sending packet OPEN data {'sid': 'f3cc277e7bec49c8b2eba1272d102a6c', 'upgrades': [], 'pingTimeout': 60000, 'pingInterval': 25000}
f3cc277e7bec49c8b2eba1272d102a6c: Sending packet MESSAGE data 0
127.0.0.1 - - [26/Nov/2019 10:57:44] "GET /socket.io/?EIO=3&transport=polling&t=1574762264065-380 HTTP/1.1" 200 -
f3cc277e7bec49c8b2eba1272d102a6c: Received packet MESSAGE data 2["register",{"username":"robert"}]
received event "register" from f3cc277e7bec49c8b2eba1272d102a6c [/]
register
127.0.0.1 - - [26/Nov/2019 10:57:44] "POST /socket.io/?EIO=3&transport=polling&t=1574762264385-381&sid=f3cc277e7bec49c8b2eba1272d102a6c HTTP/1.1" 200 -
emitting event "registered" to f3cc277e7bec49c8b2eba1272d102a6c [/]
f3cc277e7bec49c8b2eba1272d102a6c: Sending packet MESSAGE data 2["registered",null]
127.0.0.1 - - [26/Nov/2019 10:57:44] "GET /socket.io/?EIO=3&transport=polling&t=1574762264393-382&sid=f3cc277e7bec49c8b2eba1272d102a6c HTTP/1.1" 200 -
Invalid session e0e081d67cbf4189b990c1dc103da589
127.0.0.1 - - [26/Nov/2019 10:57:45] "POST /socket.io/?EIO=3&transport=polling&t=1574762265345-332&sid=e0e081d67cbf4189b990c1dc103da589 HTTP/1.1" 400 -
ca6c4332a9f347eab56882912b70a309: Sending packet OPEN data {'sid': 'ca6c4332a9f347eab56882912b70a309', 'upgrades': [], 'pingTimeout': 60000, 'pingInterval': 25000}
ca6c4332a9f347eab56882912b70a309: Sending packet MESSAGE data 0
127.0.0.1 - - [26/Nov/2019 10:57:45] "GET /socket.io/?EIO=3&transport=polling&t=1574762265792-4 HTTP/1.1" 200 -
44e90573522c46f583a5811c21a2cf97: Sending packet OPEN data {'sid': '44e90573522c46f583a5811c21a2cf97', 'upgrades': [], 'pingTimeout': 60000, 'pingInterval': 25000}
44e90573522c46f583a5811c21a2cf97: Sending packet MESSAGE data 0
127.0.0.1 - - [26/Nov/2019 10:57:47] "GET /socket.io/?EIO=3&transport=polling&t=1574762267360-333 HTTP/1.1" 200 -
44e90573522c46f583a5811c21a2cf97: Received packet MESSAGE data 2["register",{"username":"robert"}]
received event "register" from 44e90573522c46f583a5811c21a2cf97 [/]
register
127.0.0.1 - - [26/Nov/2019 10:57:48] "POST /socket.io/?EIO=3&transport=polling&t=1574762267414-334&sid=44e90573522c46f583a5811c21a2cf97 HTTP/1.1" 200 -
emitting event "registered" to 44e90573522c46f583a5811c21a2cf97 [/]
44e90573522c46f583a5811c21a2cf97: Sending packet MESSAGE data 2["registered",null]
127.0.0.1 - - [26/Nov/2019 10:57:48] "GET /socket.io/?EIO=3&transport=polling&t=1574762267420-335&sid=44e90573522c46f583a5811c21a2cf97 HTTP/1.1" 200 -
ca6c4332a9f347eab56882912b70a309: Received packet MESSAGE data 2["register",{"username":"goeland"}]
received event "register" from ca6c4332a9f347eab56882912b70a309 [/]
register
127.0.0.1 - - [26/Nov/2019 10:57:51] "POST /socket.io/?EIO=3&transport=polling&t=1574762271133-6&sid=ca6c4332a9f347eab56882912b70a309 HTTP/1.1" 200 -
emitting event "registered" to ca6c4332a9f347eab56882912b70a309 [/]
ca6c4332a9f347eab56882912b70a309: Sending packet MESSAGE data 2["registered",null]
127.0.0.1 - - [26/Nov/2019 10:57:51] "GET /socket.io/?EIO=3&transport=polling&t=1574762265812-5&sid=ca6c4332a9f347eab56882912b70a309 HTTP/1.1" 200 -
127.0.0.1 - - [26/Nov/2019 10:57:51] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [26/Nov/2019 10:57:51] "GET /static/index.js HTTP/1.1" 200 -
ccc77d7deda843fa8a846527cb19e4db: Sending packet OPEN data {'sid': 'ccc77d7deda843fa8a846527cb19e4db', 'upgrades': [], 'pingTimeout': 60000, 'pingInterval': 25000}
ccc77d7deda843fa8a846527cb19e4db: Sending packet MESSAGE data 0
127.0.0.1 - - [26/Nov/2019 10:57:51] "GET /socket.io/?EIO=3&transport=polling&t=1574762271323-0 HTTP/1.1" 200 -
ccc77d7deda843fa8a846527cb19e4db: Received packet MESSAGE data 2["register",{"username":"goeland"}]
received event "register" from ccc77d7deda843fa8a846527cb19e4db [/]
register
127.0.0.1 - - [26/Nov/2019 10:57:51] "POST /socket.io/?EIO=3&transport=polling&t=1574762271378-1&sid=ccc77d7deda843fa8a846527cb19e4db HTTP/1.1" 200 -
emitting event "registered" to ccc77d7deda843fa8a846527cb19e4db [/]
ccc77d7deda843fa8a846527cb19e4db: Sending packet MESSAGE data 2["registered",null]
127.0.0.1 - - [26/Nov/2019 10:57:51] "GET /socket.io/?EIO=3&transport=polling&t=1574762271379-2&sid=ccc77d7deda843fa8a846527cb19e4db HTTP/1.1" 200 -
ccc77d7deda843fa8a846527cb19e4db: Received packet MESSAGE data 2["new_channel",{"channel_name":"channel 3"}]
received event "new_channel" from ccc77d7deda843fa8a846527cb19e4db [/]
127.0.0.1 - - [26/Nov/2019 10:57:56] "GET / HTTP/1.1" 200 -
new_channel
127.0.0.1 - - [26/Nov/2019 10:57:56] "POST /socket.io/?EIO=3&transport=polling&t=1574762276888-4&sid=ccc77d7deda843fa8a846527cb19e4db HTTP/1.1" 200 -
{}
new_channel_created {}
emitting event "channel_created" to ccc77d7deda843fa8a846527cb19e4db [/]
ccc77d7deda843fa8a846527cb19e4db: Sending packet MESSAGE data 2["channel_created","channel 3"]
127.0.0.1 - - [26/Nov/2019 10:57:56] "GET /socket.io/?EIO=3&transport=polling&t=1574762271422-3&sid=ccc77d7deda843fa8a846527cb19e4db HTTP/1.1" 200 -
127.0.0.1 - - [26/Nov/2019 10:57:56] "GET /static/index.js HTTP/1.1" 200 -
0409f655ccc642f68322c4a9f64c3b66: Sending packet OPEN data {'sid': '0409f655ccc642f68322c4a9f64c3b66', 'upgrades': [], 'pingTimeout': 60000, 'pingInterval': 25000}
0409f655ccc642f68322c4a9f64c3b66: Sending packet MESSAGE data 0
127.0.0.1 - - [26/Nov/2019 10:57:57] "GET /socket.io/?EIO=3&transport=polling&t=1574762277050-0 HTTP/1.1" 200 -
0409f655ccc642f68322c4a9f64c3b66: Received packet MESSAGE data 2["register",{"username":"goeland"}]
received event "register" from 0409f655ccc642f68322c4a9f64c3b66 [/]
register
127.0.0.1 - - [26/Nov/2019 10:57:57] "POST /socket.io/?EIO=3&transport=polling&t=1574762277100-1&sid=0409f655ccc642f68322c4a9f64c3b66 HTTP/1.1" 200 -
emitting event "registered" to 0409f655ccc642f68322c4a9f64c3b66 [/]
0409f655ccc642f68322c4a9f64c3b66: Sending packet MESSAGE data 2["registered",null]
127.0.0.1 - - [26/Nov/2019 10:57:57] "GET /socket.io/?EIO=3&transport=polling&t=1574762277101-2&sid=0409f655ccc642f68322c4a9f64c3b66 HTTP/1.1" 200 -

Based on the logs that you have included, the problem is caused by a faulty design in your application.

The client requests a new channel to be created through a web form. The form either submits the data with a GET or a POST request, and this causes the browser to drop the current page and then reload the page that comes with the response of the form submission request. When the browser reloads the page it drops all connections, including the Socket.IO link. This is why the messages that occur as a result of this form submission are not being received by your client.

My recommendation is that you change the form submission to use AJAX, so that it is sent as a background request by the browser, without causing a page reload.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM