使用 Sun SPOT 作为构建监视器
2009-12-22 00:00:00 来源:WEB开发网radiostream 协议类似于点对点套接字连接,它为基站与远程 SPOT 之间提供可靠、有缓冲的基于流的 I/O。另外,还打开数据输入和输出流。然后,一条关于构建的简单的消息被写到输出流,远程 SPOT 读取该消息,然后返回一条简短的确认消息。接着 CanaryHandler 结束,等待下一次构建状态改变时再次被调用。
BuildCanary 代码
当 CanaryHandler 打开一个 radiostream 连接并发送一条关于构建的简单消息时,连接的另一端是 BuildCanary,它是部署在远程 SPOT 上的一个 Java ME MIDlet。MIDlet 与 servlet 和 EJB 类似,也是实现一个专门的接口,运行时环境负责在它的生命周期中的某些时候调用某些方法。
例如,MIDlet 的典型的入口点是 startApp() 方法。在 BuildCanary 中,startApp() 委托给另一个方法,后者又产生一个线程,以侦听来自 CanaryHandler 的消息。清单 4 显示 BuildCanary 的入口点的代码:
清单 4. BuildCanary 的入口点/**
* MIDlet call to start our application.
*/
protected void startApp() throws MIDletStateChangeException {
run();
}
/**
* Main application run loop which spawns a thread to listen for updates
* about the build status from the host.
*/
private void run() {
// Spawn a thread to listen for messages from the host.
new Thread() {
public void run() {
try {
updateBuildStatus();
} catch (IOException ex) {
try {
if (connection != null) {
connection.close();
}
if (dos != null) {
dos.close();
}
if (dis != null) {
dis.close();
}
ex.printStackTrace();
} catch (IOException ex1) {
// Can't do much now.
ex1.printStackTrace();
}
}
}
}.start();
}
更多精彩
赞助商链接