- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::xo::MessageRelay
::xo::MessageRelay create ...Generic Message Relay class
Defined in packages/xotcl-core/tcl/message-relay-procs.tcl
Class Relations
::nx::Class create ::xo::MessageRelay \ -superclass ::nx::ObjectMethods (to be applied on instances)
can_be_used (scripted, public)
<instance of xo::MessageRelay> can_be_usedCheck, if a message relay can be used in the current configuration.
- Testcases:
- No testcase defined.
return 1encode_message (scripted, public)
<instance of xo::MessageRelay> encode_message mode msgProvide different "encoding" depending on the mode. Notice that for one chat, multiple clients might have difference modes, since the modes are determined at also by the capabilities of the client browser. So the incoming message has to be recoded multiple times.
- Parameters:
- mode (required)
- msg (required)
- Testcases:
- No testcase defined.
set msg [encoding convertto utf-8 $msg] if {$mode eq "scripted"} { #::sec_handler_reset #ns_log notice "SEND data <$msg> encoded <$emsg>" set jsMsg [subst { <script nonce='[::security::csp::nonce]'> window.parent.postMessage($msg); </script> }] set msg [format %x [string length $jsMsg]]\r\n$jsMsg\r\n } else { set msg [string cat {data: } $msg \n\n] } #ns_log notice "#### [self] encode_message <$mode> returns <$msg>" return $msgsend_to_subscriber (scripted, public)
<instance of xo::MessageRelay> send_to_subscriber key msgSend a message to a service identified by the key (communication hub).
- Parameters:
- key (required)
- id for an existing communication hub
- msg (required)
- message to be sent
- Testcases:
- No testcase defined.
subscribe (scripted, public)
<instance of xo::MessageRelay> subscribe [ -initmsg initmsg ] \ [ -mode mode ] keySubscribe to a service identified by a key.
- Switches:
- -initmsg (optional)
- optional message to be sent, when subscription happens
- -mode (optional, defaults to
"default"
)- optional mode
- Parameters:
- key (required)
- unique id for a (potentially new communication hub)
- Testcases:
- No testcase defined.
sweep (scripted, public)
<instance of xo::MessageRelay> sweep keyCheck existing subscriptions and clean stale ones.
- Parameters:
- key (required)
- key of the communication hub
- Testcases:
- No testcase defined.
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables