小编Sri*_*rma的帖子

无法使用Atmosphere运行时广播到单个连接

我正在使用Atmosphere runtime 0.6 Snapshot.Tomcat 7正确记录我正在使用Http11 Nio连接器,并且没有警告将使用BlockingIO.

我正在尝试向三种渠道发送消息.

  1. 全球广播公司 - 向所有被暂停的资源广播.(所有)
  2. 广播到特定资源(例如,合作伙伴)
  3. 广播到当前资源(自我)

当登录动作发生时,为了实现这种广播,我必须在会话中存储什么?

我的代码的一些细节如下:

  1. 我的处理程序实现了AtmosphereHandler
  2. 在构造函数中,我实例化globalBroadcaster,如下所示:

    globalBroadcaster = new DefaultBroadcaster();

  3. 登录时,

    resource.getAtmosphereConfig().getServletContext().setAttribute(name, selfBroadcaster); 其中name是request参数的用户名,selfBroadcaster是DefaultBroadcaster的新实例.

  4. 这是sendMessageToPartner的代码,

private synchronized void sendMessageToPartner(Broadcaster selfBroadcaster, AtmosphereResource<HttpServletRequest, HttpServletResponse> resource,String name, String message) {
// this gives the partner's name
String partner= (String) resource.getAtmosphereConfig().getServletContext().getAttribute(name + PARTNER_NAME_TOKEN);
// get partner's broadcaster
Broadcaster outsiderBroadcaster = (Broadcaster) resource
.getAtmosphereConfig().getServletContext()
.getAttribute(partner);
if (outsiderBroadcaster == null) {
sendMessage(selfBroadcaster, "Invalid user " + partner);
return;
}
// broadcast to partner
outsiderBroadcaster.broadcast(" **" + …

atmosphere

4
推荐指数
1
解决办法
3603
查看次数

标签 统计

atmosphere ×1