私はcreate-react-appによって作成されたセットアップで作業し、データ管理のためにfluxを使用し、アプリケーションはクライアント側でソケットを実装する必要があります(この目的でsocket.ioを使用します)。現在、ソケットは、以下の方法ファイルSocket.jsに初期化されるユーザログイン時にソケットを再接続
:それは作業を行い
import io from 'socket.io-client';
import { remoteUrl } from './constants/RemoteUrl';
import SocketWorker from './utilities/SocketWorker';
let socket = io.connect(remoteUrl + '?role=user');
socket.on('statusChange', (data) => {
return SocketWorker.receiveOrderStatusChange(data);
})
export { socket };
は、しかし、問題は、サイトがあるときにだけ、一度サーバーに接続しようとするということですロードされる。ユーザーが接続を確立せず、再接続に失敗した場合、接続は確立されず、ソケットイベントは受信されません。
代わりにクラスを作成し、のように:
import io from 'socket.io-client';
import { remoteUrl } from './constants/RemoteUrl';
import SocketWorker from './utilities/SocketWorker';
function Socket() {
this.socket = io.connect(remoteUrl + '?role=user');
this.reconnect =() => {
this.socket = io.connect(remoteUrl + '?role=user');
}
}
let socket = new Socket();
socket.socket.on('statusChange', (data) => {
return SocketWorker.receiveOrderStatusChange(data);
})
export { socket };
私はSocket.reconnect()メソッドを呼び出そうとしましたが、機能しなかったし、接続も確立されませんでした。任意のアイデアや代替ソリューション?