React-Redux und Websockets mit socket.io

Ich bin neu in dieser Technologie von React-Redux und würde mich über Ihre Hilfe bei der Implementierung freuen.

Ich möchte eine Chat-Anwendung mit Sockets (socket.io) implementieren. Zuerst muss sich der Benutzer anmelden (ich verwende den Pass auf der Serverseite) und nach erfolgreicher Anmeldung muss sich der Benutzer mit dem webSocket verbinden.

Ich dachte, dass das Beste darin besteht, eine Middleware wie eine Pipe für alle Aktionen zu verwenden und je nachdem, welche Aktion die Middleware erhält, verschiedene Aktionen durchzuführen.

Wenn der Aktionstyp @ iAUTH_USER, stelle eine Client-Server-Verbindung her und richte alle Ereignisse ein, die vom Server kommen.

Wenn der Aktionstyp @ iMESSAGE Sende die Nachricht an den Server.

Code Ausschnitte

----- socketMiddleware.js ----

import { AUTH_USER,  MESSAGE } from '../actions/types';

import * as actions from 'actions/socket-actions';

import io from 'socket.io-client';

const socket = null;

export default function ({ dispatch }) {

    return next => action => {

        if(action.type == AUTH_USER) {

            socket = io.connect(`${location.host}`);

            socket.on('message', data => {

               store.dispatch(actions.addResponse(action.data));

            });

        }

        else if(action.type == MESSAGE && socket) {

            socket.emit('user-message', action.data);

            return next(action)

        } else {
            return next(action)
        }
    }

}

------ index.js -------

import {createStore, applyMiddleware} from 'redux';

import socketMiddleware from './socketMiddleware';



const createStoreWithMiddleware = applyMiddleware(

  socketMiddleware

)(createStore);

const store = createStoreWithMiddleware(reducer);

<Provider store={store}>

    <App />

</Provider>

Was denkst du über diese Praxis, ist es eine bessere Implementierung?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage