the reason I use pD over smoutput is that it returns what it prints without 
modifying it.

I made the following change to the send line:

pD  (pD 3!:1 r_jrx_) -:  3!:1 r_jrx_
pD 'serv send'; r=. 0 ". wd 'ws sendb ',(":sk),' *',  3!:1 r_jrx_
pD 0 ". wd 'ws sendb ', (":sk), ' *Alphabet:', a.

output is: 

�<<
0  1  2  3  4
5  6  7  8  9
10 11 12 13 14
15 16 17 18 19
1
┌─────────┬─┐
│serv send│3│
└─────────┴─┘
9

meaning:
y -: pD y
still 3 bytes sent on first sendb.
Just 'Alphabet:' sent on 2nd.  (Hitting byte of 0 might terminate message)


----- Original Message -----
From: bill lam <bbill....@gmail.com>
To: programm...@jsoftware.com
Cc: 
Sent: Monday, February 17, 2014 1:04:52 AM
Subject: Re: [Jprogramming] Qt websockets and doevents

I'll take a look in the jwiki entry, 

I suspect you meant
pD 'serv send'; r=. 0 ". wd 'ws sendb ',(":sk),' *', 3!:1 ...

or did check what is r_jrx and the result of pD?

smoutput r_jrx_
smoutput $r_jrx_
smoutput 3!:0 r_jrx_
foo=. pD 3!:1 r_jrx_
smoutput $foo
smoutput 3!:0 foo

I think you should make sure what was being sent first.

Also QtWebsocket may interpret and convert data as utf8 text but
a. is not a legal utf8 string. I guess neither will other
websockt server/client, eg javascript, will handle raw binary data 
in the same manner as J. They either use equivelent of sendb or
encode binary to plain text such as base64 in order to transmit/receive
binary data.

Вс, 16 фев 2014, Pascal Jasmin писал(а):
> thank you bill that worked.
> 
> sendb may not work... or has documentation issues.
> 
> modifying the demo (server handler onMessage send line) to:
> 
> pD 'serv send'; r=. 0 ". wd 'ws sendb ',(":sk),' *', pD 3!:1 r_jrx_
> 
> where pD =: 1!:2&2
> 
> the output to the default client request is:
> 
> �<<
> 0  1  2  3  4
> 5  6  7  8  9
> 10 11 12 13 14
> 15 16 17 18 19
> ┌─────────┬─┐
> │serv send│3│
> └─────────┴─┘
> 
> only 3 bytes are being sent.
> 
> On the client side, only 1 byte appears to be in wsc0_jrx_
> 
> I assume there are 2 typos on the example for sendb at 
> http://www.jsoftware.com/jwiki/Guides/JqtWebsocket
> 
> should be:
> len=. 0 ". wd 'ws sendb ', socket, ' *Alphabet:', a.
> but adding the line: 
> pD 0 ". wd 'ws sendb ', (":sk), ' *Alphabet:', a.
> 
> 
> results in 9 bytes sent
> 
> There is a suggestion that sendb might not be necessary at all for J to J 
> applications,
> 
> "J itself does not distinguish between text and binary data, but binary data 
> cannot always be represented as legal utf8 text and the remote side that 
> connected to the socket may also care, use either send or sendb as 
> appropriated."
> 
> but only 9 bytes are sent when send instead of sendb is used too.
> 
> 
> ----- Original Message -----
> From: bill lam <bbill....@gmail.com>
> To: programm...@jsoftware.com
> Cc: 
> Sent: Friday, February 14, 2014 10:49:50 PM
> Subject: Re: [Jprogramming] Qt websockets and doevents
> 
> Sorry, the error message was terse.
> in fact it expected either 1 ro 2 arguments for send.
> either "send socket" or "send socket data"
> 
> try this
> 
>   wd 'ws send ', (": sk) , ' hello'
> or
>   wd 'ws send ', (": sk) , ' "hello client, username:"'
> or
>   wd 'ws send ', (": sk) , ' *hello client, username:'
> 
> I guess the send in the demo should already use the * 
> 
> Пт, 14 фев 2014, Pascal Jasmin писал(а):
> > Another issue I've uncovered in single application client and server 
> > communication, also applies to separate applications.
> > 
> > It appears that the server receives the connect (onOpen) event first 
> > (before client), but even though the server is connected, it is not safe 
> > for it to send yet.
> > 
> > For instance, modifying the demo file:  \addons\ide\qt\demo.ijs
> > 
> > in the elseif jws_onOpen section of wssvr_handler , adding the line:
> > smoutput 'serv connected'
> > 
> > wd 'ws send ', (": sk) , ' hello client, username:'
> > 
> > 
> > (loading the file will also load a client web page app)
> > 
> > Hitting connect on the web app will display following message in console:
> > 
> > serv connected
> > |ws : Need socket [data]: 73313136 hello client, username:: wd
> > |   (wd ::(''"_)'qer')    (13!:8)3
> > 
> > The previous problem I was reporting was that the client sending "too fast" 
> > caused no error on send, but a disconnect.  Here the server has been told 
> > its connected, and has a socket number, but this weird error.   Some 
> > suggestions:
> > 
> > Perhaps the connect event could be delayed until the 2 sides are "really 
> > connected" ?
> > send should return _1 in above case?
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> 
> -- 
> regards,
> ====================================================
> GPG key 1024D/4434BAB3 2008-08-24
> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

-- 
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to