Oto kod zaimplementowany do połączenia z gniazdem, ale nie działał. Chcę utworzyć aplikację do obsługi wiadomości czatu, która reaguje natywnie z aktualizacjami w czasie rzeczywistym, która korzysta z zaplecza naszego serwera WWW. Próbuję połączyć moją aplikację z gniazdem io, ale nie działa.

Użyłem socket.IO-client do reagowania natywnego:

import SocketIOClient from 'socket.IO-client'

export default Class Socket extends Component{
  constructor(){
    super();
    var Live_URL = "https://xxx.xxxxxxx.xxx/"
    this.socket = SocketIOClient(Live_URL);
  }

  componentDidMount(){
    this.socket.connect();
    this.socket.on("connect", () => {
      console.log('connection.')
    });
  }
}

Tutaj jest kod po stronie serwera ....

module.exports = function(app, httpServer) {

    var socketioJWT = require('socketio-jwt');
    var io = require("socket.io").listen(httpServer);
    var clients = [];
    var connectedClientSocketIds = []; //for store socket all opened ids.
    var clientsStatus = {};

    io.use(socketioJWT.authorize({
        secret: global.hzConfig.jwtPrivateKey,
        handshake: true
    }));

    //for store all ffmpeg converting process (user for kill running process)
    var runningFfmpegCommands = {};

    /**
     * @description Socket connection in when user going to online
     */
    io.sockets.on("connect", function(socket){
console.log(socket)
}

Otrzymuję ten rodzaj błędu w konsoli .....

Error: server error
    at Socket.onPacket (socket.js:455)
    at XHR.<anonymous> (socket.js:278)
    at XHR.Emitter.emit (index.js:133)
    at XHR.Transport.onPacket (transport.js:149)
    at callback (polling.js:144)
    at Object.exports.decodePayload (browser.js:384)
    at XHR.Polling.onData (polling.js:148)
    at Request.<anonymous> (polling-xhr.js:128)
    at Request.Emitter.emit (index.js:133)
    at Request.onData (polling-xhr.js:302)

Proszę o jakieś rozwiązanie?

0
Andy valley 19 grudzień 2019, 16:24
Rozwiązujesz to?
 – 
Oliver D
1 lipiec 2020, 02:02

1 odpowiedź

Rozwiązanie, które sprawdziło się w mojej aplikacji natywnej React:

import io from 'socket.io-client';

componentDidMount() {
   const socket = io.connect(url);
   socket.on('message', (data) => {});
}
0
Nikolai Novikov 19 grudzień 2019, 18:50
Czy na pewno serwer gniazd działa poprawnie? Sprawdzałeś to w sieci?
 – 
Nikolai Novikov
20 grudzień 2019, 08:23
Czy możesz mi powiedzieć, jak połączyć się za pomocą parametrów, takich jak port i czy jest jakaś ścieżka, którą muszę dodać w connect.
 – 
Andy valley
20 grudzień 2019, 08:32
Otrzymuję tego rodzaju błąd. error:błąd serwera w konsoli
 – 
Andy valley
20 grudzień 2019, 14:55