Hacker News new | ask | show | jobs
Show HN: Wsta – a CLI for working with WebSockets written in Rust (github.com)
85 points by esphen 3683 days ago
5 comments

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

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 :)

Glad to hear the back story of wsta! :)
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.)

Something like: arecord -fdat | wsta ws:// ?
Supposing this is correct, you can add the json with cat: arecord -fdat | cat init.json - | wsta ws://
Yep, that sounds like the magic I was looking for. I'll try it out later today.
Holler if it works, that sounds pretty awesome!
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.
Shameless plug: I built something similar in Golang a while ago: https://github.com/oliver006/ws-client
For users, I think it's better to ask to install rustup from rustup.sh, and then just `cargo install wscat`.
Quite true. Thanks for the tip!
But it needs a better name. I'm thinking telweb :-D.