首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javax.websocket客户端简单示例

javax.websocket客户端简单示例
EN

Stack Overflow用户
提问于 2014-10-20 00:49:14
回答 4查看 259.4K关注 0票数 117

有没有人可以给我提供一个使用javax.websocket的websocket客户端的简单示例

我想连接到websocket (ws://socket.example.com:1234),发送消息(添加通道)和收听消息。所有消息(已发送和已侦听)均为JSON格式。

顺便说一下,对于简单的websocket通信,这个库是最好的吗?

EN

回答 4

Stack Overflow用户

发布于 2014-10-20 22:14:05

TooTallNate有一个简单的客户端https://github.com/TooTallNate/Java-WebSocket

只需将dist文件夹中的java_websocket.jar添加到您的项目中。

 import org.java_websocket.client.WebSocketClient;
 import org.java_websocket.drafts.Draft_10;
 import org.java_websocket.handshake.ServerHandshake;
 import org.json.JSONException;
 import org.json.JSONObject;

  WebSocketClient mWs = new WebSocketClient( new URI( "ws://socket.example.com:1234" ), new Draft_10() )
{
                    @Override
                    public void onMessage( String message ) {
                     JSONObject obj = new JSONObject(message);
                     String channel = obj.getString("channel");
                    }

                    @Override
                    public void onOpen( ServerHandshake handshake ) {
                        System.out.println( "opened connection" );
                    }

                    @Override
                    public void onClose( int code, String reason, boolean remote ) {
                        System.out.println( "closed connection" );
                    }

                    @Override
                    public void onError( Exception ex ) {
                        ex.printStackTrace();
                    }

                };
 //open websocket
 mWs.connect();
 JSONObject obj = new JSONObject();
 obj.put("event", "addChannel");
 obj.put("channel", "ok_btccny_ticker");
 String message = obj.toString();
 //send message
 mWs.send(message);

//并关闭websocket

 mWs.close();
票数 47
EN

Stack Overflow用户

发布于 2018-06-20 16:35:50

使用此库org.java_websocket

首先,您应该在build.gradle中导入该库

repositories {
 mavenCentral()
 }

然后在依赖项{}中添加实现

implementation "org.java-websocket:Java-WebSocket:1.3.0"

然后,您可以使用以下代码

在您活动中为Websocketclient声明对象,如下所示

private WebSocketClient mWebSocketClient;

然后为回调添加此方法

 private void ConnectToWebSocket() {
URI uri;
try {
    uri = new URI("ws://your web socket url");
} catch (URISyntaxException e) {
    e.printStackTrace();
    return;
}

mWebSocketClient = new WebSocketClient(uri) {
    @Override
    public void onOpen(ServerHandshake serverHandshake) {
        Log.i("Websocket", "Opened");
        mWebSocketClient.send("Hello from " + Build.MANUFACTURER + " " + Build.MODEL);
    }

    @Override
    public void onMessage(String s) {
        final String message = s;
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                TextView textView = (TextView)findViewById(R.id.edittext_chatbox);
                textView.setText(textView.getText() + "\n" + message);
            }
        });
    }

    @Override
    public void onClose(int i, String s, boolean b) {
        Log.i("Websocket", "Closed " + s);
    }

    @Override
    public void onError(Exception e) {
        Log.i("Websocket", "Error " + e.getMessage());
    }
};
mWebSocketClient.connect();

}

票数 3
EN

Stack Overflow用户

发布于 2014-12-18 01:10:06

这里有一个简单的例子..您可以下载并测试它的http://www.pretechsol.com/2014/12/java-ee-websocket-simple-example.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26452903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档