安卓SocketIOClient错误:"方案“WS”未注册 [英] Android SocketIOClient error: "Scheme 'ws' not registered

查看:634
本文介绍了安卓SocketIOClient错误:"方案“WS”未注册的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个的node.js / socket.io服务器,我想创建一个Android应用程序通过的WebSockets的comunicate。我发现了一个库: https://github.com/koush/android-websockets 但是,当我尝试使用示例code(Socket.IO使用):

I have a node.js/socket.io server and I wanted to create an Android app to comunicate via websockets. I found a library: https://github.com/koush/android-websockets But when I try to use the sample code (Socket.IO Usage):

SocketIOClient client = new SocketIOClient(URI.create("ws://myIP:port"), new SocketIOClient.Handler() {
    String TAG = "WebSocket Handler";
    @Override
    public void onConnect() {
            Log.d(TAG, "Connected!");
    }

    @Override
    public void on(String event, JSONArray arguments) {
        Log.d(TAG, String.format("Got event %s: %s", event, arguments.toString()));
    }

    @Override
    public void onDisconnect(int code, String reason) {
        Log.d(TAG, String.format("Disconnected! Code: %d Reason: %s", code, reason));
    }

    @Override
    public void onError(Exception error) {
        Log.e(TAG, "Error!", error);
    }
});

client.connect();

(使用IP和端口,或URL:端口) 出现以下错误:

(using IP and port, or url:port) the following error occurs:

Error!
05-19 18:03:56.065: E/WebSocket Handler(629): java.lang.IllegalStateException: Scheme 'ws' not registered.
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.conn.scheme.SchemeRegistry.getScheme(SchemeRegistry.java:80)
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.impl.conn.DefaultHttpRoutePlanner.determineRoute(DefaultHttpRoutePlanner.java:107)
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:565)
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292)
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-19 18:03:56.065: E/WebSocket Handler(629):   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-19 18:03:56.065: E/WebSocket Handler(629):   at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:243)
05-19 18:03:56.065: E/WebSocket Handler(629):   at com.codebutler.android_websockets.SocketIOClient.downloadUriAsString(SocketIOClient.java:48)
05-19 18:03:56.065: E/WebSocket Handler(629):   at com.codebutler.android_websockets.SocketIOClient.access$1(SocketIOClient.java:45)
05-19 18:03:56.065: E/WebSocket Handler(629):   at com.codebutler.android_websockets.SocketIOClient$3.run(SocketIOClient.java:200)

我无法找到一个解决办法

I can't find a solution

推荐答案

这个例子code中的 https://github.com/koush/android-websockets 是有些误导。更改 WS:// 的http:// ,它应该正常工作

The example code in the readme file of https://github.com/koush/android-websockets is slightly misleading. Change ws:// to http:// and it should work properly.

另外由于某种原因,这是不正常的模拟器。我试了一下,在设备,似乎作出上述更改后的工作。

Also for some reason it was not working properly in emulator. I tried it in the device and it seems to work after making the above change.

这篇关于安卓SocketIOClient错误:"方案“WS”未注册的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆