Advertisement
Guest User

Untitled

a guest
Feb 2nd, 2018
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 6 1.39 KB | None | 0 0
  1. sub routes (Daemon $daemon) is export {
  2.     route {
  3.         my $message_text = Supplier.new;
  4.         get -> 'ws-connect' {
  5.             web-socket -> $incoming, $close {
  6.                 supply {
  7.                     whenever $incoming -> $message {
  8.                         $message_text.emit(await $message.body-text);
  9.                     }
  10.  
  11.                     whenever $message_text -> $extension {
  12.                         my $supplier = Supplier.new;
  13.                         $daemon.new_socket_friend($extension, $supplier);
  14.                     }
  15.  
  16.                     whenever $daemon.send-call-signal -> $call-signal {
  17.                         emit to-json $call-signal,
  18.                     }
  19.  
  20.                 }
  21.             }
  22.         }
  23.     }
  24. }
  25.  
  26.  
  27. _________________________________________________________________________________________
  28.  
  29. monitor Daemon {
  30.     has Supplier $!send-call-signal = Supplier.new;
  31.     has Listener $!listener         = Listener.new;
  32.     has %.websocket_connections is rw;
  33.  
  34.     method send-call-signal(--> Supply) {
  35.         supply {
  36.             whenever $!listener.listen {
  37.                 %.websocket_connections{ $_<Destination> }.emit($_);
  38.             }
  39.         }
  40.     }
  41.     method new_socket_friend($extension, $new_socket_connection) {
  42.         %.websocket_connections.push: (
  43.             $extension => $new_socket_connection
  44.         );
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement