… I've hit “send” button by mistake…. Hi Gustaf I’ve noticed you had uploaded a simple client interface to websocket-procs.tcl. https://bitbucket.org/naviserver/websocket/src/master/websocket-procs.tcl <https://bitbucket.org/naviserver/websocket/src/master/websocket-procs.tcl>
However, I hit another error related to [dict], because the url doesn’t return a path, when [dict get $d path] runs. The websocket sample is "wss://javascript.info/article/websocket/demo/hello <wss://javascript.info/article/websocket/demo/hello>”,which returns the following content [12/Jul/2020:21:10:09][22414.7efbf37fe700][-conn:iurix:0:9-] Notice: D proto wss host javascript.info path article/websocket/demo tail hello I’m going to continue writing this client. I don’t know if you are in the middle the implementation but I shall thank you in advance. That’s been very helpful already. Best wishes, I > On Dhuʻl-Q. 21, 1441 AH, at 21:08, Iuri de Araujo Sampaio <i...@iurix.com> > wrote: > > Hi Gustaf, > I’ve noticed you had uploaded a simple client interface to > websocket-procs.tcl. > https://bitbucket.org/naviserver/websocket/src/master/websocket-procs.tcl > <https://bitbucket.org/naviserver/websocket/src/master/websocket-procs.tcl> > > However, I hit another error related to [dict], because the url doesn’t > return a path, when [dict get $d path] runs. > The websocket sample is "wss://javascript.info/article/websocket/demo/hello > <wss://javascript.info/article/websocket/demo/hello>" > > Best wishes, > I > > > [12/Jul/2020:21:10:09][22414.7efbf37fe700][-conn:iurix:0:9-] Notice: D proto wss host javascript.info path article/websocket/demo tail hello > [12/Jul/2020:21:03:33][22342.7efbf37fe700][-conn:iurix:0:36-] Error: can't > read "path": no such variable > while executing > "append request_url /$path" > (procedure "ws::client::open" line 19) > invoked from within > "ws::client::open $url" > ("uplevel" body line 8) > invoked from within > "uplevel { > ns_log Notice "Running TCL script luna.tcl" > > (procedure "code::tcl::/var/www/iurix//packages/ix-websocket/www/luna" > line 2) > invoked from within > "code::tcl::$__adp_stub" > ("uplevel" body line 12) > invoked from within > "uplevel { > > if { [file exists $__adp_stub.tcl] } { > > # ensure that data source preparation procedure exists and is > up-to-date > ..." > (procedure "adp_prepare" line 2) > invoked from within > "adp_prepare" > invoked from within > "template::adp_parse $themed_template {}" > (procedure "adp_parse_ad_conn_file" line 14) > invoked from within > "$handler" > ("uplevel" body line 2) > invoked from within > "uplevel $code" > invoked from within > "ad_try { > $handler > } ad_script_abort val { > # do nothing > }" > invoked from within > "rp_serve_concrete_file [ad_conn file]" > (procedure "::nsf::procs::rp_serve_abstract_file" line 60) > invoked from within > "rp_serve_abstract_file "$root/$extra_url"" > ("uplevel" body line 2) > invoked from within > > >> On Dhuʻl-Q. 20, 1441 AH, at 21:14, Iuri de Araujo Sampaio <i...@iurix.com >> <mailto:i...@iurix.com>> wrote: >> >> Hi there, >> >> My code's intended to open a websocket connection to the echo service, wait >> 400ms to ensure that the connection is really established and send a textual >> message, which should be echoed back by the echo service. >> >> The last part will be handling/parsing that message (i.e. TXT or JSON >> message, which was echoed in that channel). Thus, every time a message comes >> through the channel a callback will be in charge to parse that message and >> store its content. >> >> However, when I run the first version of the code, and it returns an error >> related to: Error: can't set "formMap": variable is array >> >> >> /usr/local/src/ns-4.9.17/tcl8.6.8/library/http/http.tcl: return [string >> map $formMap $string] >> /usr/local/src/tcl8.6.9/library/http/http.tcl: variable formMap [array >> get map] >> >> >> The error is related to core packages, and I believe it happens to fail >> because that source is some sort of an old code. Thus, it’s not a good idea >> to fork it at all. >> How would refactor a "background websocket connection", using the new >> implementation available at: >> https://bitbucket.org/naviserver/websocket/src/master/ >> <https://bitbucket.org/naviserver/websocket/src/master/> ? >> >> Here it’s the code >> >> package require websocket >> ::websocket::loglevel debug >> proc handler { sock type msg } { >> switch -glob -nocase -- $type { >> co* { >> ns_log Notice "Connected on $sock" >> puts "Connected on $sock" >> >> } >> te* { >> ns_log Notice "RECEIVED $msg" >> puts "RECEIVED: $msg" >> } >> cl* - >> dis* { >> } >> } >> >> } >> proc test { sock } { >> puts "[::websocket::conninfo $sock type] from [::websocket::conninfo >> $sock sockname] to [::websocket::conninfo $sock peername]" >> >> ::websocket::send $sock text "Testing, testing..." >> } >> set sock [::websocket::open >> wss://javascript.info/article/websocket/demo/hello >> <wss://javascript.info/article/websocket/demo/hello> handler] >> ns_log Notice "SOCKET \n $socket" >> after 400 test $sock >> vwait forever >> >> >> >> >> Documentation Reference: >> https://core.tcl-lang.org/tcllib/doc/tcllib-1-17/embedded/www/tcllib/files/modules/websocket/websocket.html#1 >> >> <https://core.tcl-lang.org/tcllib/doc/tcllib-1-17/embedded/www/tcllib/files/modules/websocket/websocket.html#1> >> >> >> Best wishes, >> I >> >> >> >> >> >> >> [11/Jul/2020:20:39:38][471.7efbf37fe700][-conn:iurix:0:91-] Error: can't set >> "formMap": variable is array >> while executing >> "variable formMap [array get map]" >> (procedure "init" line 15) >> invoked from within >> "init" >> (in namespace eval "::http" script line 83) >> invoked from within >> "namespace eval http { >> # Allow resourcing to not clobber existing data >> >> variable http >> if {![info exists http]} { >> array set http { >> -ac..." >> (file "/usr/local/ns/lib/tcl8/8.6/http-2.9.0.tm" line 16) >> invoked from within >> "source -encoding utf-8 /usr/local/ns/lib/tcl8/8.6/http-2.9.0.tm" >> ("package ifneeded http 2.9.0" script) >> invoked from within >> "package require http 2.7" >> (file "/usr/local/ns/lib/tcllib1.19/websocket/websocket.tcl" line 20) >> invoked from within >> "source /usr/local/ns/lib/tcllib1.19/websocket/websocket.tcl" >> ("package ifneeded websocket 1.4.1" script) >> invoked from within >> "package require websocket" >> ("uplevel" body line 3) >> invoked from within >> "uplevel { >> >> package require websocket >> ::websocket::loglevel debug >> proc handler { sock type msg } { >> switch -glob -nocase -- $type { >> co* { >> ..." >> (procedure "code::tcl::/var/www/iurix//packages/ix-websocket/www/ws2" >> line 2) >> invoked from within >> "code::tcl::$__adp_stub" >> ("uplevel" body line 12) >> invoked from within >> "uplevel { >> >> if { [file exists $__adp_stub.tcl] } { >> >> # ensure that data source preparation procedure exists and is >> up-to-date >> ..." >> (procedure "adp_prepare" line 2) >> invoked from within >> "adp_prepare" >> invoked from within >> "template::adp_parse $themed_template {}" >> (procedure "adp_parse_ad_conn_file" line 14) >> invoked from within >> "$handler" >> ("uplevel" body line 2) >> invoked from within >> "uplevel $code" >> invoked from within >> "ad_try { >> $handler >> } ad_script_abort val { >> # do nothing >> }" >> invoked from within >> "rp_serve_concrete_file [ad_conn file]" >> (procedure "::nsf::procs::rp_serve_abstract_file" line 60) >> invoked from within >> "rp_serve_abstract_file "$root/$extra_url"" >> ("uplevel" body line 2) >> invoked from within >> "uplevel $code" >> invoked from within >> "ad_try { >> rp_serve_abstract_file "$root/$extra_url" >> set ::tcl_url2file([ad_conn url]) [ad_conn file] >> se..." >> called from rp_handler >> GET http://iurix.com/websocket/ws2? >> <http://iurix.com/websocket/ws2?> referred by '' peer 192.199.241.135 >> user_id 0 >> >> Host: iurix.com <http://iurix.com/> >> X-Real-IP: 179.199.201.237 >> Connection: close >> Upgrade-Insecure-Requests: 1 >> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) >> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 >> Accept: >> text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 >> Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7 >> Cookie: _ga=GA1.2.1048850939.1594336017; >> _gid=GA1.2.432393726.1594336018; mycrawler=-6040px%3A2521px%3Aleft; >> ad_session_id="44640008%2c0%2c0%2c1594507600%20{834%201594508800%20914BAD40D8EF86359761E4528028EE55857B5F51}" >> >> _______________________________________________ >> naviserver-devel mailing list >> naviserver-devel@lists.sourceforge.net >> <mailto:naviserver-devel@lists.sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > _______________________________________________ > naviserver-devel mailing list > naviserver-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/naviserver-devel
_______________________________________________ naviserver-devel mailing list naviserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/naviserver-devel