我可以使用wscat连接到WS,我可以从控制台发送命令,但我不知道如何从脚本传递命令。 我已经尝试了一些方法,并且在命令通过之前总是关闭WAS。
一般来说,我会找到一些东西: 1.连接到WS 2.从列表中逐个发送命令 3.将输入和输出保存到文件
答案 0 :(得分:1)
wscat
是一个选择不当的工具;它不是遵循使其适合脚本使用的约定(例如保持stderr而不是stdout的提示;或者在输出不是TTY时抑制提示;或者将EOF视为关闭连接的信号)。请考虑websocat
:
#!/usr/bin/env bash
runscript() {
commands=( "first command" "second command" "third command" )
for command in "${commands[@]}"; do
echo "Writing command to server" >&2
echo "$command"
echo "Reading response from server (assuming exactly one line)" >&2
read -r line
echo "Received response: $line" >&2
done
# kill websocat, even if the websocket doesn't get closed
kill "$PPID"
}
export -f runscript
websocat ws://echo.websocket.org sh-c:'exec bash -c runscript'
答案 1 :(得分:0)
为简单起见,您可以使用<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
参数为-x
建立连接后发送一些JSON,例如:
wscat
wscat --connect ws://example.com -w 1 -x '{"action": "helloWorld"}'
将在发送邮件后等待一秒钟,以防万一有任何回复。
当然,这样做是连接到WebSocket,发送消息,等待给定的时间进行回复,然后断开连接,因此,如果需要保持消息之间的连接打开,这不是一个好选择。