Comment utiliser RxJs avec la Prise.IO sur l'événement
Je veux utiliser RxJS à l'intérieur de mon socket.on('sense',function(data){});
. Je suis coincé et se confond avec très peu de documentation disponible et de mon manque de compréhension RxJS. Voici mon problème.
J'ai un distSensor.js
qui a une fonction pingEnd()
function pingEnd(x){
socket.emit("sense", dist); //pingEnd is fired when an Interrupt is generated.
}
À l'intérieur de mon App.js j'ai
io.on('connection', function (socket) {
socket.on('sense', function (data) {
//console.log('sense from App4 was called ' + data);
});
});
Le sens de la fonction de beaucoup de données de capteur qui je veux filtrer à l'aide de RxJS et je ne sais pas que dois-je faire pour utiliser RxJs ici. Tous les pointeurs de droite docs ou de l'échantillon de l'aide.
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pouvez utiliser
Rx.Observable.fromEvent
(https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/fromevent.md).Voici comment j'ai fait quelque chose de similaire à l'aide de Bacon.js qui a une très similaires API: https://github.com/raimohanska/bacon-minsk-2015/blob/gh-pages/server.js#L13
Donc dans Bacon.js elle irait comme
Et dans RxJs vous auriez remplacer
Bacon.fromEvent
avecRx.Observable.fromEvent
.Rx.Observable
comme vous l'avez déjà décrite.J'ai vécu de drôles de questions à l'aide de la fromEvent méthode, donc je préfère juste de créer mon propre Observables:
Je peux alors l'utiliser comme ceci:
Vous pouvez créer un Observables comme suit:
Ensuite utiliser
senses
comme tous les autres Observables.function(h){...}
.let obs = Observable.fromEventPattern(h => this.socket.on('my_event', h));
const sense$ = Rx.Observable.fromEvent(socket, 'sense');
Simplement utiliser
fromEvent()
. Voici un exemple complet dans Node.js mais fonctionne de la même façon dans le navigateur. Notez que j'utilisefirst()
ettakeUntil()
pour éviter une fuite de mémoire:first()
écoute seulement d'un événement, puis se termine. Maintenant utilisertakeUntil()
sur tous les autres socket-les événements de vous écouter afin de les observables complète à la déconnexion:ES6 un liner que j'utilise, à l'aide de ES7 lier syntaxe:
(lire
$
commestream
)Vous pouvez utiliser rxjs-dom,