/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.lodgon.chatfx; import com.sun.javafx.runtime.async.AbstractAsyncOperation; import com.sun.javafx.runtime.async.AsyncOperationListener; import java.awt.EventQueue; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; /** * * @author johan */ public class AsyncReader extends AbstractAsyncOperation { public String foo; public ChatInput callback; public AsyncReader(ChatInput callback, AsyncOperationListener listener) { super(listener); this.callback = callback; } @Override public Object call() throws Exception { try { URL url = new URL("http://x4.lodgon.com/chatserver/chat"); URLConnection c = url.openConnection(); c.setDoInput(true); c.setDoOutput(false); BufferedReader r = new BufferedReader(new InputStreamReader(c.getInputStream())); String l = null; while ((l = r.readLine()) != null) { System.out.println("new line received = " + l); final String oneline = l; EventQueue.invokeLater(new Runnable() { @Override public void run() { callback.gotText(oneline); } }); } System.out.println("closing connection - no more data"); r.close(); } catch (Exception e) { e.printStackTrace(); } return null; } }