開發(fā)工具:android studio 3.1.3
小白看看就好了邪码,大神飄過。
由于先前的的socket搭建起來給小程序用的咬清。然后出現(xiàn)只能用wss來連接闭专。在做轉(zhuǎn)發(fā)的時候遇到了點(diǎn)問題放棄了。于是直接使用 Java-WebSocket 來實(shí)現(xiàn)了旧烧。
大部分過程在java-websocket-wiki中給出了喻圃。我也只能給大家拋個磚頭自己去看了。我直接引入外部庫就實(shí)現(xiàn)了粪滤,大致流程如下斧拍。(默認(rèn)支持一般socket連接的哦)
引入外部庫
在模塊依賴的配置文件中添加implementation "org.java-websocket:Java-WebSocket:1.3.9"
Java-WebSocket給出的是compile "org.java-websocket:Java-WebSocket:1.3.9"
但是在我這個AS環(huán)境報錯了,自行斟酌使用杖小。
dependencies
新建客戶端類
繼承SocketClient
接下來就交給AS處理了肆汹,windows下直接ALT+Enter
方法全部自動生成~
新建客戶端類
順便貼一下代碼吧~
package cn.zhushuliang.kuai.mysecondapp;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
import java.net.URISyntaxException;
public class SocketClient extends WebSocketClient {
/**
* 此方法為了直接運(yùn)行測試用例,實(shí)際使用自行此類重寫
* @param args
* @throws URISyntaxException
*/
public static void main(String[] args) throws URISyntaxException {
WebSocketClient client = new SocketClient(new URI("wss://socket.xxxxx.com"));
client.connect();
}
public SocketClient(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake handshakedata) {
System.out.println( "opened connection" );
}
@Override
public void onMessage(String message) {
System.out.println( message);
// send(message);
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println( "Connection closed by " + ( remote ? "remote peer" : "us" ) );
}
@Override
public void onError(Exception ex) {
ex.printStackTrace();
}
}
最后給出成功結(jié)果
測試結(jié)果