Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid with websocket communication (Node Websocket server and Android Java Client). Dosen't work on Android 4
    primarykey
    data
    text
    <p>I tried to use as a Android client Websocket - <a href="http://code.google.com/p/weberknecht/" rel="nofollow">weberknecht</a> with a thread to send every second a message to a Nodejs Websocket (js): <a href="http://static.brandedcode.com/nws-docs/" rel="nofollow">Node WebSocket Server</a></p> <p>It work fine on android 2 or 2.3.3, but when i trie on android 4 i get an error on websocket.connect();</p> <p>Do you know why or what i am doing wrong?</p> <p>My code is:</p> <pre><code>public class MainThread extends Thread { private boolean is_running; private URI url = null; private de.roderick.weberknecht.WebSocket websocket = null; public MainThread() { this.is_running = false; try { url = new URI("ws://192.168.1.88:8088/"); websocket = new WebSocketConnection(url); websocket.setEventHandler(new WebSocketEventHandler() { public void onOpen(){ System.out.println("--open"); } public void onMessage(WebSocketMessage message){ System.out.println("--received message: " + message.getText()); } public void onClose(){ System.out.println("--close"); } }); } catch (WebSocketException wse) { wse.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } catch (URISyntaxException use) { use.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } @Override public void run() { while(is_running){ try { websocket.send("hello world"); Thread.sleep(10000); } catch (WebSocketException wse) { wse.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } public void set_running(boolean is_running) { if(is_running == true) try { websocket.connect(); this.is_running = is_running; } catch (WebSocketException e) { System.out.println(e.toString()); //e.printStackTrace(); } } } </code></pre> <p>and the error I get on android 4:</p> <pre><code>ERROR/AndroidRuntime(562): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.biskis.test.websocket/com.biskis.test.websocket.GameActivity}: android.os.NetworkOnMainThreadException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) at android.app.ActivityThread.access$600(ActivityThread.java:123) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) Caused by: android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) at libcore.io.IoBridge.connectErrno(IoBridge.java:127) at libcore.io.IoBridge.connect(IoBridge.java:112) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.Socket.startupSocket(Socket.java:566) at java.net.Socket.tryAllAddresses(Socket.java:127) at java.net.Socket.&lt;init&gt;(Socket.java:177) at java.net.Socket.&lt;init&gt;(Socket.java:149) at de.roderick.weberknecht.WebSocketConnection.createSocket(WebSocketConnection.java:238) at de.roderick.weberknecht.WebSocketConnection.connect(WebSocketConnection.java:83) at com.biskis.test.websocket.MainThread.set_running(MainThread.java:76) at com.biskis.test.websocket.GameActivity.onCreate(GameActivity.java:20) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) ... 11 more </code></pre> <p>Or do you know how to implement this in a better way to comunicate a client (java, android) to a server (nodejs, websocket) ?</p> <p>Thank you.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload