あなたは言及していないので、あなたはFluxを使用していないと思いますか? ホームページから:
Fluxは、FacebookがクライアントサイドWebアプリケーションを構築するために使用するアプリケーションアーキテクチャです。これは、単方向データフローを利用してReactの構成可能なビューコンポーネントを補完します。これは正式なフレームワークではなく、パターンであり、新しいコードを多く使わずにFluxをすぐに使用することができます。
Fluxを使用している場合、ソケットオブジェクトを渡す必要はありませんが、それとReactコンポーネント間の通信は非常にうまくいっています。 たとえば、次の形式で:
const Dispatcher = require('./Dispatcher)';
const socket = require('socket.io-client')();
// Listen to events from server -> Emit them to listeners in the client app
socket.on('EVENT_A', data => {
data.type = 'EVENT_A';
Dispatcher.dispatch(data);
});
// Listen to events from the client app -> Emit them to server
Dispatcher.register(payload => {
switch(payload.type) {
case 'EVENT_B':
socket.emit('EVENT_B', payload.data);
break;
case 'EVENT_QUIT':
socket.disconnet();
location.assign('/exit');
break;
default: break;
}
});
あなたは、単一のファイル内のソケット関連のコードを置くことができ、かつフラックスのディスパッチャは、フラックス店を通じてまたはリアクトコンポーネントに直接自分自身にいずれか、すべての通信作業を行います。
古いスタイルのコーディングのようなソケットを使用できますか? 例: スクリプトを接続しました: var socket = io( '/'); そして、必要な場所で使用してください。 – user3079091
代わりに、私はあなたが初期化した後にソケットオブジェクトをエクスポートすることができると信じています。そして、他のモジュールは 'var socket = require( 'path-to-socket' – hainq