如果您可以升级到或正在使用JDK 7,我建议使用Vert.x
Vertx.io,在客户端使用Sockjs. Vert.x有一个完整的sockjs服务器实现,我会尝试建议一种方法来实现这一点,其余请看文档
服务器实现可能是这样的
Vertx vertx = Vertx.newVertx();
EventBus eventBus = vertx.eventBus()
HttpServer server = vertx.createHttpServer();
JsonArray permitted = new JsonArray();
permitted.add(new JsonObject());
SockJSServer sockJSServer = new DefaultSockJSServer(vertx, server);
sockJSServer.bridge(new JsonObject().putString("prefix", "/pusher"), permitted, permitted);
server.listen();
在客户端注册一个处理程序,如文件加载
function () {
if (!eb) {
eb = new vertx.EventBus("http://:/pusher");
eb.onopen = function() {
console.log("connected")
};
eb.onclose = function() {
console.log("Not connected");
eb = null;
};
}
}
然后你可以向任何地址注册一个处理程序 – 这里的地址可以是任何东西,假设它是“AwesomeNotifications”
function subscribe(address) {
if (eb) {
eb.registerHandler(address, function(msg, replyTo) {
console.log("Reply recieved")
});
}
}
一旦你完成这些设置,你现在可以使用我们之前创建的事件总线将任何数据从服务器推送到这个地址
eventBus.publish("AwesomeNotifications", new JsonObject())
希望这可以帮助