Posted to tcl by mbedev at Fri Mar 01 13:28:19 GMT 2019view raw
- package require websocket
- ::websocket::loglevel debug
- proc simple_handler {sock type msg} {
- # Uncomment the following line to view what's being sent from the client.
- puts "Echo sock=$sock type=$type msg=$msg"
- if {0} {
- # All we want to do is echo back what was sent (thought I would append
- # my own message ;-))
- switch $type {
- request {return }
- close { return }
- disconnect { return }
- binary { return }
- text {
- ::websocket::send $sock text "$msg on the TclHttpd Web Server"
- }
- }
- }
- }
- proc init_handler { chan clientaddr clientport } {
- puts "server: new connection $clientaddr $clientport"
- ::websocket::takeover $chan simple_handler 1
- }
- set sock [socket -server init_handler 8080]
- fconfigure $sock -translation binary
- vwait forever
- #------- Output ---------
- server: new connection 127.0.0.1 38629
- Echo sock=sock55c05cfecd50 type=connect msg=
- [Fri Mar 01 14:25:56 CET 2019] [websocket] [debug] 'sock55c05cfecd50 has been registered as a server WebSocket'
- [Fri Mar 01 14:25:56 CET 2019] [websocket] [warn] 'Cannot send along WS sock55c05cfecd50, not connected'
- [Fri Mar 01 14:25:56 CET 2019] [websocket] [info] 'Closing web socket: 1002 (Protocol error)'
- Echo sock=sock55c05cfecd50 type=close msg=1002 {Protocol error}
- Echo sock=sock55c05cfecd50 type=disconnect msg=Disconnected from remote end