package io.vivarium.client; import java.net.URI; import java.net.URISyntaxException; import org.java_websocket.handshake.ServerHandshake; import com.fasterxml.jackson.databind.ObjectMapper; import io.vivarium.client.task.NullTask; import io.vivarium.client.task.Task; import io.vivarium.net.Constants; import io.vivarium.util.UUID; public class TaskClient extends VivariumResearchClient { private ObjectMapper _mapper = new ObjectMapper(); private Task _task; public TaskClient(Task task) throws URISyntaxException { super(new URI("ws", null, "localhost", Constants.DEFAULT_PORT, "/", null, null), UUID.randomUUID()); this._task = task; } @Override public void onOpen(ServerHandshake handshakedata) { System.out.println("CLIENT: connection opened " + handshakedata); _task.onOpen(this, handshakedata); } @Override public void onMessage(String message) { System.out.println("CLIENT: Received message " + message.substring(0, Math.min(message.length(), 200))); System.out.println("task is " + _task); _task.onMessage(this, message); } @Override public void onClose(int code, String reason, boolean remote) { System.out.println("CLIENT: connection to server closed " + code + " / " + reason + " + " + remote); _task.onClose(this, code, reason, remote); } @Override public void onError(Exception ex) { System.out.println("CLIENT: error " + ex); ex.printStackTrace(); _task.onError(this, ex); } public static void main(String[] args) { try { TaskClient worker = new TaskClient(new NullTask()); worker.connect(); } catch (URISyntaxException e) { e.printStackTrace(); } } public ObjectMapper getMapper() { return _mapper; } }