@@ -81,6 +81,12 @@ <h3>Current Connections:</h3>
8181 < pre id ="conns "> </ pre >
8282 </ div >
8383
84+ < div id ="subs-container " style ="display:none; ">
85+ < h3 > Subscriptions</ h3 >
86+ < pre id ="subs "> </ pre >
87+ </ div >
88+
89+
8490 < script >
8591 let socket = null ;
8692 let reconnectInterval = null ;
@@ -95,6 +101,9 @@ <h3>Current Connections:</h3>
95101 const usersHeader = document . getElementById ( 'users-header' ) ;
96102 const connElement = document . getElementById ( 'conn-info' ) ;
97103 const connIdInput = document . getElementById ( 'connId' ) ;
104+ const subsContainer = document . getElementById ( 'subs-container' ) ;
105+ const subsElement = document . getElementById ( 'subs' ) ;
106+
98107
99108 function buildWebSocketUrl ( { host, port, ssl = true , path = '' } ) {
100109 let protocol = ssl ? 'wss' : 'ws' ;
@@ -121,21 +130,18 @@ <h3>Current Connections:</h3>
121130 socket = new WebSocket ( url , token ) ; // token as subprotocol
122131
123132 socket . onopen = ( ) => {
124- console . log ( `Connected to WebSocket server at ${ url } ` ) ;
125- clearInterval ( reconnectInterval ) ;
126133 requestConns ( ) ;
127134 requestNodes ( ) ;
128- requestUsers ( ) ;
129-
135+ requestSubscriptions ( ) ;
136+
130137 setInterval ( ( ) => {
131- if ( socket && socket . readyState === WebSocket . OPEN ) {
132- requestConns ( ) ;
133- requestNodes ( ) ;
134- requestUsers ( ) ;
135- }
138+ requestConns ( ) ;
139+ requestNodes ( ) ;
140+ requestSubscriptions ( ) ;
136141 } , 5000 ) ;
137142 } ;
138143
144+
139145 socket . onmessage = ( event ) => {
140146 const data = event . data ;
141147 try {
@@ -147,6 +153,7 @@ <h3>Current Connections:</h3>
147153 case "nodes" : displayNodes ( response ) ; break ;
148154 case "conn" : displayConnInfo ( response ) ; break ;
149155 case "users" : displayUsers ( response ) ; break ;
156+ case "subs" : displaySubs ( response ) ; break ;
150157 default : console . log ( "Unknown response kind:" , response . kind ) ;
151158 }
152159 } catch ( error ) {
@@ -188,6 +195,15 @@ <h3>Current Connections:</h3>
188195 alert ( 'Please enter a valid conn ID' ) ;
189196 }
190197 } ) ;
198+
199+ function requestSubscriptions ( ) {
200+ if ( socket && socket . readyState === WebSocket . OPEN ) {
201+ socket . send ( JSON . stringify ( {
202+ kind : "get_subscriptions" ,
203+ message : "Requesting subscriptions"
204+ } ) ) ;
205+ }
206+ }
191207
192208 function requestConns ( ) {
193209 if ( socket && socket . readyState === WebSocket . OPEN ) {
@@ -239,6 +255,27 @@ <h3>Current Connections:</h3>
239255 }
240256 }
241257
258+ function displaySubs ( state ) {
259+ subsContainer . style . display = 'block' ;
260+ subsElement . innerHTML = "" ;
261+
262+ let data = state . data ;
263+
264+ if ( Array . isArray ( data ) ) {
265+ const ul = document . createElement ( 'ul' ) ;
266+ data . forEach ( sub => {
267+ const li = document . createElement ( 'li' ) ;
268+ li . textContent =
269+ `ID: ${ sub . id } , expires: ${ sub . expires_at } , deleted: ${ sub . is_deleted } , ref:_by ${ sub . referred_by } ` ;
270+ ul . appendChild ( li ) ;
271+ } ) ;
272+ subsElement . appendChild ( ul ) ;
273+ } else {
274+ subsElement . textContent = JSON . stringify ( state . data , null , 2 ) ;
275+ }
276+ }
277+
278+
242279 function displayNodes ( state ) {
243280 nodesContainer . style . display = 'block' ;
244281 nodesElement . innerHTML = "" ;
0 commit comments