rendered paste bodypackage hk.com.novare.cometclient;import org.cometd.Client;import org.cometd.Message;import org.cometd.MessageListener;import org.mortbay.cometd.AbstractBayeux;import org.mortbay.cometd.client.BayeuxClient;import org.mortbay.jetty.client.Address;import org.mortbay.jetty.client.ContentExchange;import org.mortbay.jetty.client.HttpClient;import org.mortbay.util.ajax.JSON;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Toast;public class CometClientActivity extends Activity { private volatile boolean running; private Button fireButton = null; private Handler labelHandler = new Handler() { @Override public void handleMessage(android.os.Message msg) { if (fireButton != null) { fireButton.setText((String) msg.obj); } } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); fireButton = (Button) findViewById(R.id.fireButton); fireButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { new Thread(new Runnable() { public void run() { if (running == false) { android.os.Message m = labelHandler.obtainMessage(0, "Stop"); labelHandler.sendMessage(m); running = true; goDojo(); } else { android.os.Message m = labelHandler.obtainMessage(0, "Start"); labelHandler.sendMessage(m); running = false; } } }).start(); } }); } void goDojo() { final HttpClient httpClient = new HttpClient(); try { httpClient.setConnectorType(HttpClient.CONNECTOR_SOCKET); // Fails immediately// httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL); httpClient.start(); final BayeuxClient bayeuxClient = new BayeuxClient(httpClient, new Address("10.9.7.90", 8080), "/cometd/cometd"); final MessageListener messageListener = new MessageListener() { public void deliver(Client arg0, Client arg1, Message arg2) { Log.d("CometClientActivity", arg2.toString()); } }; bayeuxClient.addListener(messageListener); bayeuxClient.start(); final String channel = "/chat/demo"; bayeuxClient.subscribe(channel); final String name = "clientName"; final String chat = "smallMessage"; Object msg=new JSON.Literal("{\"user\":\"" + name + "\",\"chat\":\"" + chat + "\"}"); int n = 0; while (running) { bayeuxClient.publish(channel, msg, String.valueOf(n++)); try { Thread.sleep(10000L); } catch (InterruptedException e) { // Nothing } } } catch (Exception e) { Log.d("CometClientActivity", "Comet Fail", e); } } }