Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[kura-dev] WebSocket Handshake problem

Hello,
I'm trying to create a WebSocket communication between a server and a client that is inside a Java class in a Kura project on a Raspberry Pi. I don't want to use Kura broker for this specific connection but only share information with another host.

I tried to run my project with the emulator and everything was fine. Unfortunately, when I deploy my project on Raspberry, I catch the following exception:
!STACK 0
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
    at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
    at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
    at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816)
    at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783)
    at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
    at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: java.lang.RuntimeException: javax.websocket.DeploymentException: Handshake response not received.
    at org.eclipse.kura.example.WebSocketMyClient.<init>(WebSocketMyClient.java:33)
    at org.eclipse.kura.example.KuraCloudTest.activate(KuraCloudTest.java:56)
    ... 15 more
Caused by: javax.websocket.DeploymentException: Handshake response not received.
    at org.glassfish.tyrus.client.ClientManager$3$1.run(ClientManager.java:655)
    at org.glassfish.tyrus.client.ClientManager$3.run(ClientManager.java:673)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.glassfish.tyrus.client.ClientManager$SameThreadExecutorService.execute(ClientManager.java:826)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
    at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:496)
    at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:366)
    at org.eclipse.kura.example.WebSocketMyClient.<init>(WebSocketMyClient.java:28)
    ... 16 more

The server prints on the terminal 'new connection' because the request from client to server (1st step handshake) arrives successfully but the confirm from the server to the client (2nd step handshake) fails and the server disconnect immediately.
I also tried the WebSocket communication between a client, indipendent from kura, and the server and it worked. And finally,to avoid network issues, I moved the server script on Raspberry, so client and server are on the same host, but the problem persists.

So the issue is related to call a WebSocket with Kura on a target device.

Do you have any idea?
Any help would be really appreciated.
Thanks,
Alessandro

Back to the top