有一个适用于StreamHub的GWT Comet模块:
http://code.google.com/p/gwt-comet-streamhub/
StreamHub是一款带有免费社区版的Comet服务器。您可以在此处查看它的示例。
您需要下载StreamHub Comet服务器并创建一个新的SubscriptionListener,使用StockDemo示例作为起点,然后创建一个新的JsonPayload以流式传输数据:
Payload payload = new JsonPayload("AAPL");
payload.addField("bid", "88.84");
payload.addField("ask", "88.86");
server.publish("AAPL", payload);
...
从Google Code网站下载JAR包,将其添加到您的GWT项目类路径中,并将其包含在您的GWT模块中:
<inherits name="com.google.gwt.json.JSON" />
<inherits name="com.streamhub.StreamHubGWTAdapter" />
从您的GWT代码中连接并订阅:
StreamHubGWTAdapter streamhub = new StreamHubGWTAdapter();
streamhub.connect("http://localhost:7979/");
StreamHubGWTUpdateListener listener = new StockListener();
streamhub.subscribe("AAPL", listener);
streamhub.subscribe("IBM", listener);
streamhub.subscribe("GOOG", listener);
...
然后在更新监听器中按照您的喜好处理更新(同样在GWT代码中):
public class StockListener implements StreamHubGWTUpdateListener {
public void onUpdate(String topic, JSONObject update) {
String bid = ((JSONString)update.get("bid")).stringValue();
String ask = ((JSONString)update.get("ask")).stringValue();
String symbol = topic;
...
}
}
不要忘记在您的GWT项目主HTML页面中包含streamhub-min.js。