私は現在、メインプロセスでウェブソケットを介してサーバーと通信したいElectronアプリケーションを作成しています。イベントエミッタをsocket.connectedに接続する
私のメインプロセスのコードベースの一部は、ユーザーのソケット接続状況によって異なります。私は私のサーバーへの接続が確立されているかどうかに応じてtrue
またはfalse
ある変数socket.connected
、へのアクセスを提供しますsocket.io-client
ライブラリ
const socket = require('socket.io-client')(host);
が必要です。
このように、私はこの変数にイベントエミッタを付けることを望みます。私はそれがポーリング
var events = require('events').EventEmitter;
var event = new events();
// Emits successfully every 200ms 'Connection: true|false'
event.on('status', function(status){
console.log('Connection: ', status);
});
setInterval(function() {
let status = socket.connected;
event.emit('status', status);
}, 200);
で動作するようになりましたが、これは本当にそれを実装するための方法であるかどうかを疑問に思いました。私にとってはnodejsのような非同期フレームワークのポーリングに頼らざるを得ないことは奇妙に思えます。他に、私は実装するための他の方法を見つけることができませんでした。最良のシナリオは、何らかの形でイベントエミッタをsocket.connected
に直接添付することですが、その方法を見つけることができませんでした。誰も私が実装するより良い方法についてアドバイスできますか?
おかげ
あなたは実際にどのようなイベントを通知したいですか? 'socket.io-client'は他のsocket.ioサーバにクライアントとして接続するためのものです。 – jfriend00
さて、afaikはまさに私の使用例です。私の電子アプリは、クライアントとしてsocket.ioサーバーに接続しています... –
そして、どのようなイベントを通知したいですか? – jfriend00