60 lines
1.8 KiB
Java
60 lines
1.8 KiB
Java
package earth.krakatao;
|
|
|
|
import earth.krakatao.protocol.KraSocketClientProtocol;
|
|
import earth.krakatao.protocol.KraSocketClientProtocolMessage;
|
|
import earth.krakatao.events.KraSocketClientEventInitiater;
|
|
import java.net.URI;
|
|
import java.nio.ByteBuffer;
|
|
import org.java_websocket.client.WebSocketClient;
|
|
import org.java_websocket.handshake.ServerHandshake;
|
|
|
|
public class SocketClient extends WebSocketClient {
|
|
|
|
private final KraSocketClientProtocol kraProtocol;
|
|
private final KraSocketClientEventInitiater kraSocketClientEventInitiater;
|
|
|
|
public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater, KraSocketClientProtocol kraProtocol) {
|
|
super(serverUri);
|
|
|
|
this.kraSocketClientEventInitiater = kraSocketClientEventInitiater;
|
|
this.kraProtocol = kraProtocol;
|
|
}
|
|
|
|
public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) {
|
|
if (isOpen()) {
|
|
send(this.kraProtocol.EncodeMessage(kraProtocolMessage));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onOpen(ServerHandshake serverHandshake) {
|
|
this.kraSocketClientEventInitiater.callOnOpen(serverHandshake);
|
|
System.out.println("open");
|
|
}
|
|
|
|
@Override
|
|
public void onMessage(String s) {
|
|
System.out.println("message s: "+ s);
|
|
}
|
|
|
|
@Override
|
|
public void onMessage(ByteBuffer byteBuffer) {
|
|
KraSocketClientProtocolMessage kraProtocolMessage = new KraSocketClientProtocol().DecodeMessage(byteBuffer.array());
|
|
|
|
this.kraSocketClientEventInitiater.callOnMessage(kraProtocolMessage);
|
|
System.out.println("msg b:" + byteBuffer);
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onClose(int code, String reason, boolean remote) {
|
|
this.kraSocketClientEventInitiater.callOnClose(code, reason, remote);
|
|
System.out.println("close: " + code + " " +reason + " " +remote);
|
|
}
|
|
|
|
@Override
|
|
public void onError(Exception e) {
|
|
System.out.println("Error: " + e);
|
|
}
|
|
}
|