有没有人可以给我提供一个使用javax.websocket
的websocket客户端的简单示例
我想连接到websocket (ws://socket.example.com:1234),发送消息(添加通道)和收听消息。所有消息(已发送和已侦听)均为JSON格式。
顺便说一下,对于简单的websocket通信,这个库是最好的吗?
发布于 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();
发布于 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();
}
发布于 2014-12-18 01:10:06
这里有一个简单的例子..您可以下载并测试它的http://www.pretechsol.com/2014/12/java-ee-websocket-simple-example.html
https://stackoverflow.com/questions/26452903
复制相似问题