
Show HN: Wsta – a CLI for working with WebSockets written in Rust - esphen
https://github.com/esphen/wsta/
======
devy
I have been using `wscat`[1] when I was developing a WebSocket app last year.
It was a nifty little tool although it would require the entire nodejs / npm
stack to be able to run it. `wsta` is probably more portable as all we need is
just a native binary to run.

[1]:
[https://www.npmjs.com/package/wscat](https://www.npmjs.com/package/wscat)

~~~
esphen
Yep, wscat is pretty a pretty nice tool! I used it as well, but it always
bothered me that I couldn't tell it what to send to the server when running
it. It's super handy to be able to file bugs with a one-liner to reproduce the
bug.

That lead me to fork it and send a PR with that feature. It never got merged,
so I simply created a new project, which ultimately lead to this :)

~~~
devy
Glad to hear the back story of wsta! :)

------
nfriedly
Can I use this to send an initial JSON message and then pipe audio data from
my mic?

(I wouldn't be surprised if this is possible with standard UNIX magic... But I
just don't know how.)

~~~
tty7
Something like: arecord -fdat | wsta ws:// ?

~~~
nindwen
Supposing this is correct, you can add the json with cat: arecord -fdat | cat
init.json - | wsta ws://

~~~
nfriedly
Yep, that sounds like the magic I was looking for. I'll try it out later
today.

~~~
esphen
Holler if it works, that sounds pretty awesome!

~~~
nfriedly
I tried a few different things and couldn't make it work. I think the problem
is that the audio data is getting sent as a text websocket message rather than
binary message. I got a whole bunch of "error: stream did not contain valid
UTF-8" and "No JSON object could be decoded" errors that I think both came
from the remote end.

------
oliver006
Shameless plug: I built something similar in Golang a while ago:
[https://github.com/oliver006/ws-client](https://github.com/oliver006/ws-
client)

------
dpc_pw
For users, I think it's better to ask to install rustup from rustup.sh, and
then just `cargo install wscat`.

~~~
esphen
Quite true. Thanks for the tip!

------
qwertyuiop924
But it needs a better name. I'm thinking telweb :-D.

