Why is my websocket closing with code 1002?
MikeTT
✭
I've been working with our 2nd Omnicore controller and unfortunately I am having trouble subscribing to resources via the Web API using a websocket connection. The websocket immediately closes with the following code:
"<info>closed Code: 1002 Reason: An exception has occurred while connecting."
This is confusing as we are using the same code and the same setup as with our 1st Omnicore system, where websockets are working ok.
The working system is running RobotControl 7.0.4 whereas the system we are having issues with was originally running 7.2.2, but I upgraded it to 7.3.0 in hopes of fixing the issue. However unfortunately it did not.
Below are the relevant REST interactions with the robot controller:
27/09/2021 13:47:00.089 PM : Session: 1 : POST : https://192.168.3.221:443//subscription : resources=1&1=/rw/panel/ctrl-state&1-p=1 : Starting
27/09/2021 13:47:00.200 PM : Session: 1 : POST : https://192.168.3.221:443//subscription : resources=1&1=/rw/panel/ctrl-state&1-p=1 : Complete
27/09/2021 13:47:00.200 PM : SUBSCRIPTION - Location: wss://192.168.3.221:443/poll/11 groupID: 11 : SUBSCRIPTION
27/09/2021 13:47:00.200 PM : SUBSCRIPTION - Cookies: -http-session-=24::http.session::11b801e5c15740036264713061ee4d76; path=/; domain=192.168.3.221; secure; httponly,ABBCX=2228237; path=/; domain=192.168.3.221; httponly : SUBSCRIPTION
27/09/2021 13:47:00.266 PM : Session: 1 : DELETE : https://192.168.3.221:443//subscription/11//rw/panel/ctrl-state : : Starting
27/09/2021 13:47:00.271 PM : Session: 1 : DELETE : https://192.168.3.221:443//subscription/11//rw/panel/ctrl-state : : Complete
For our C# code we are using virtually the same code as what is shown in the ElogSubscriber example provided by ABB. Though we have added this line in the WsConnect method:
"websocket.SslConfiguration.EnabledSslProtocols = SslProtocols.Tls12;"
Does anyone have any ideas as to what is going on here? If you need more information from me please just let me know.
Thanks,
Mike
"<info>closed Code: 1002 Reason: An exception has occurred while connecting."
This is confusing as we are using the same code and the same setup as with our 1st Omnicore system, where websockets are working ok.
The working system is running RobotControl 7.0.4 whereas the system we are having issues with was originally running 7.2.2, but I upgraded it to 7.3.0 in hopes of fixing the issue. However unfortunately it did not.
Below are the relevant REST interactions with the robot controller:
27/09/2021 13:47:00.089 PM : Session: 1 : POST : https://192.168.3.221:443//subscription : resources=1&1=/rw/panel/ctrl-state&1-p=1 : Starting
27/09/2021 13:47:00.200 PM : Session: 1 : POST : https://192.168.3.221:443//subscription : resources=1&1=/rw/panel/ctrl-state&1-p=1 : Complete
27/09/2021 13:47:00.200 PM : SUBSCRIPTION - Location: wss://192.168.3.221:443/poll/11 groupID: 11 : SUBSCRIPTION
27/09/2021 13:47:00.200 PM : SUBSCRIPTION - Cookies: -http-session-=24::http.session::11b801e5c15740036264713061ee4d76; path=/; domain=192.168.3.221; secure; httponly,ABBCX=2228237; path=/; domain=192.168.3.221; httponly : SUBSCRIPTION
27/09/2021 13:47:00.266 PM : Session: 1 : DELETE : https://192.168.3.221:443//subscription/11//rw/panel/ctrl-state : : Starting
27/09/2021 13:47:00.271 PM : Session: 1 : DELETE : https://192.168.3.221:443//subscription/11//rw/panel/ctrl-state : : Complete
For our C# code we are using virtually the same code as what is shown in the ElogSubscriber example provided by ABB. Though we have added this line in the WsConnect method:
"websocket.SslConfiguration.EnabledSslProtocols = SslProtocols.Tls12;"
Does anyone have any ideas as to what is going on here? If you need more information from me please just let me know.
Thanks,
Mike
0
Answers
-
I have had issues with this as well but on the RW6 system I was hopeful it was resolved on the RW7.
Have not got much support by ABB on this topic so I have not fully resolved this issue any updates on your issues would be appreciated.
The exsample code on the developer center is extremely out of date.
If the system connects correctly the first time (no cookie or session information stored) it wont have an issue. What can happen is the cookie ABBCX=2228237 is not actually the right cookie, it gets replaced on the very next communication response. A value of 2228237 means that the controller has been sending a lot of new cookies. This can result in zombie's users on the controller when its not closing them correctly, eventually maxing the controller out resulting in an error with every new ABBCX. This can be seen on the rws_info_show.txt in the system diagnostics.
Most of my programs are using java script but the concept is the same.- First contact
- Server responds with session: -http-session-
- Subsequent requests provide cookie: -http-session-
- Server responds with cookie: ABBCX
- Update cookie jar do not replace
- Subsequent requests Provide cookie: -http-session-, ABBCX
In all responses look for update cookie. Do not overwrite only update needed cookie -http-session- or ABBCX never both. If both are provided update Session then on the next communication update the new ABBCX
if 'Set-Cookie' in res.headers:
self.session.cookies.update(resp.cookies)
I still have issues with subscription but if your send a few GET request and get a stable -http-session-and ABBCX locked in before subscribing has kind of worked for me
Its also best to not have Robot Studio active when your program is first connecting.
0 -
Hi Kienan, thanks for the response, I'm struggling to find time to test this at the moment but once I get round to it I'll let you know how I get on!0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 798 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings