Advertisement
Guest User

Untitled

a guest
Jul 16th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const WebSocket = require('ws');
  2. const UUID = require('uuid');
  3. const Rx = require('rxjs');
  4.  
  5. const random = require('random-number').generator({
  6.   min:  1000000,
  7.   max:  9999999,
  8.   integer: true
  9. });
  10.  
  11. const homegearId = `PimaticTest-${UUID.v4()}`;
  12.  
  13. const socketServer = Rx.Observable.webSocket({
  14.   url: `ws://127.0.0.1:2001/${homegearId}`,
  15.   WebSocketCtor: WebSocket,
  16.   protocol: 'server'
  17. });
  18.  
  19. const socketClient = Rx.Observable.webSocket({
  20.   url: `ws://127.0.0.1:2001/${homegearId}`,
  21.   WebSocketCtor: WebSocket,
  22.   protocol: 'client'
  23. });
  24.  
  25. socketServer.subscribe((response) => {
  26.   console.log(`Received Message (Server): ${JSON.stringify(response)}`);
  27. }, (err) => {
  28.   console.log(err);
  29. }, () => {
  30.   console.log('Server closed');
  31. });
  32.  
  33. socketClient.subscribe((response) => {
  34.   console.log(`Received Message (Client): ${JSON.stringify(response)}`);
  35.   if(!("auth" in response)) {
  36.     sendClientResponse({});
  37.   }
  38. }, (err) => {
  39.   console.log(err);
  40. }, () => {
  41.   console.log('Client closed');
  42. });
  43.  
  44. const sendServerRequest = (request) => {
  45.   console.log(`Sending Request (Server): ${JSON.stringify(request)}`);
  46.   socketServer.next(JSON.stringify(request));
  47.   return socketServer.filter((response) => {
  48.     return response.id === request.id;
  49.   });
  50. }
  51.  
  52. const sendClientRequest = (request) => {
  53.   console.log(`Sending Request (Client): ${JSON.stringify(request)}`);
  54.   socketClient.next(JSON.stringify(request));
  55.   return socketClient.filter((response) => {
  56.     return response.id === request.id;
  57.   });
  58. }
  59.  
  60. const sendClientResponse = (response) => {
  61.   socketClient.next(JSON.stringify(response));
  62. }
  63.  
  64. Rx.Observable.timer(1000).subscribe(() => {
  65.  
  66.   const message = {"jsonrpc":"2.0","method":"subscribePeers","id": random(),"params":[homegearId, [7]]};
  67.  
  68.   sendServerRequest(message).subscribe(() => {});
  69.  
  70. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement