趣味的なIT・ネットの話題

Ionic2でハイブリッドなアプリ開発:socket.ioのemitはコネクションを確認してから

socket.ioを使うアプリを開発していたのですが、デスクトップでシミュレートしている分にはいいのですが、実機(Android)に入れると途端にレスポンスが遅くなります。そんなに古い奴じゃ無いのに。

色々試した結果、connectする前にsocket.emitをすると遅くなることが分かりました。そこでemitをラップしてconnectの状態を確認してから実行させると、アプリのもっさりが無くなりました。

export var createIO = (address:string) => {
  manager = socketio(address);

  manager.on("connect", () =>{
    isConnected = true;
    console.log('io connected');
  });
  manager.on("disconnect", () =>{
    isConnected = false;
    console.log('io connected');
  });

}

export var emit = (name:string,data:any) => {
  if(isConnected){
    manager.emit(name, data);
  }
}

 


Facebooktwitterpinterestlinkedinmail
納得したらすぐにシェア!