0

react/redux アプリケーションと一緒に socket.io を使用する方法を理解しようとしており、そうすることでどれだけ最適化できるかを確認しています。したがって、サーバーでは、ここに表示されるソケットを使用した非常に基本的なセットアップがあります。

store.subscribe(() => {
    io.emit('state', store.getState().toJS());
});

io.on('connection', (socket) => {
    socket.emit('state', store.getState().toJS());
    socket.on('action', function (action) {
        action.headers = socket.request.headers;
        store.dispatch(action);
    });
});

したがって、通常とは異なる唯一のことは、後で使用するためにリクエスト ヘッダーをアクションに貼り付けただけです。私が試して達成したいのは、このようなものです-

 io.connections[i].emit('state')

そして追加

socket.on('state', (action) => {
    socket.emit('state', getUserSpecificState(store));
});

これにより、すべての接続をループし、その接続のソケットを使用してその時点で特定のユーザーを呼び出すことができるという考えです。このようなことが可能かどうかはわかりません。ユーザー固有の情報のみを返送する処理について、可能なフィードバックを探しています。また、アクションによって変更された状態の一部 (状態全体ではなく) のみを送り返し、フロント エンド ストアに状態をアセンブルさせることもクールです。どんな/すべての入力も大歓迎です、ありがとう!

4

1 に答える 1

1

このロジックを処理するのは redux の問題ではないようです。それをいくつかのモジュールに配置し、ミドルウェアを使用して状態に接続するか、単に「外部から」状態オブジェクトを使用して状態に接続します。状態管理といえば、何を実装しようとしていますか? swarm.js や diffsync などの CRDT の場合のようです。

于 2015-10-05T10:26:54.190 に答える