!752 //1002612 // javax.websocket + implementation (tyrus) !1002664 // JDK 7 tyrus import javax.websocket.*; import org.glassfish.tyrus.client.*; p { S token = loadSecretTextFile("#1002653", "slack-token.txt"); if (token == null) token = devChannelToken(); token = token.trim(); S url = "https://slack.com/api/rtm.start"; Map postData = litmap("token", token, "no_unreads", "1"); S data = doPost(postData, url); Map map = cast jsonDecode(data); //printStructure(map); S websocketURL = getString(map, "url"); print("Websocket URL: " + websocketURL); assertTrue(nempty(websocketURL)); // open websocket //final CountDownLatch messageLatch = new CountDownLatch(1); final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build(); ClientManager client = ClientManager.createClient(); client.connectToServer(new Endpoint() { public void onOpen(Session session, EndpointConfig config) ctex { session.addMessageHandler(new MessageHandler.Whole() { @Override public void onMessage(String message) { System.out.println("Received message: " + message); //messageLatch.countDown(); } }); //session.getBasicRemote().sendText(SENT_MESSAGE); } }, cec, new URI(websocketURL)); //messageLatch.await(100, TimeUnit.SECONDS); }