A client to send and receive data to a WebSocket.
How to add the Websocket Client robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Communication category tab.
- Press the Websocket Client icon to add the robot skill to your project.
Don't have a robot yet?
Follow the Getting Started Guide to build a robot and use the Websocket Client robot skill.
How to use the Websocket Client robot skill
A client to send and receive data to a WebSocket, assign the response to a variable, and execute scripts.
Use ControlCommand to open a connection to a remote host and send data. The received data will be assigned to a variable and the specified script will execute. Once a connection is established to the server using the ControlCommand Open, your program may now send messages to the server via the ControlCommand Send. Any messages received from the server are stored in a variable and the script is launched.
Configuration Menu
The Response Variable will hold the text response message that is sent from the server.
Response Script will be executed for every response that is sent from the server. Within this script, the response message is available in the Response Variable. By default, an example script will speak the response data.
The Connection Status Variable holds a true or false bool regarding the status of the connection to the server.
Enable Debug will display the full response message in the log window. This will consume unnecessary CPU and memory in a production environment and is only for debugging. By default, this is checked.
Open Connection This example command will create a connection to the public WebSocket echo server for testing. Any data sent to this web socket server will be echoed back.
ControlCommand("WebSocket Client", "Open", "ws://echo.websocket.org");
Send Data Send test data once the connection has been established. You can continually send data as needed. When data is received from the server, the response will be assigned to a variable and the script will execute. By default, the script will speak the response.
ControlCommand("WebSocket Client", "Send", "Text to send");
Related Questions
JSON To Mjbots Quad Robot Series
What Is A Web Hook?
Upgrade to ARC Pro
Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.
Could you please provide an option to disable the Voice reading of the variables. Thanks
Default script is to speak the variable when the robot skill is first added.
However, it is something you can easily change. ARC robot skills have config buttons for configuring settings. Follow these steps...
Load ARC
add this robot skill
press the config button on this robot skill (it’s three little dots next to the close and help)
press the Response Script button (This script is executed for every response message received from the server)
change the default code or remove it. This is a necessary step because you’ll always need to handle incoming messages.
Press SAVE to save the project with the configured skill
Thanks DJ, I missed that. Web socket will be very useful for doing a lot of things. Nice skill.
I just downloaded latest version but it no longer appears to work. Example if I just connect to a test server, I get an error it can no longer send. ControlCommand("WebSocket Client", "Open", "ws://demos.kaazing.com/echo"); ControlCommand("WebSocket Client", "Send", "{'test'}");
Start ControlCommand Error for 'WebSocket Client' sending 'send'. Not connected Done (00:00:00.0091077)
Maybe try putting some time to let the connection actually happen. Web sockets are a little weird that way...
OK I was using two seperate scripts funny that websocket.org worked but not that one or my dog. strange
I'll make the OPEN wait until the connection is either completed or times out. I'll post an update - stay tuned
Updated to not require a sleep after connecting. It will internally wait for the connection or throw a timeout error
ok getting data again. Thanks. Still haven't gotten it to actually accept a command yet but one step forward
Bugfix when a message is received while ARC is closing