需要你的建议,请。我的系统是关于客户端程序和网络服务的。客户端是某些事件的实例化者,它们向 Web 服务发送消息,对其进行处理并在完成后广播回来。我需要做的是关闭服务器端的 web-socket 连接,并清理资源。现在,当我关闭码头时,我可以看到所有广播公司仅在该步骤被删除。如果我向一个客户发送 10 条消息,我会得到 10 个广播公司挂在网络服务上。在广播器上尝试了 .destroy() ,但并没有真正看到它工作,还尝试在客户端破坏连接,但也没有成功。
我的订阅是:
@GET
@Suspend
public SuspendResponse<String> subscribe(){
....
Broadcaster broadcaster = BroadcasterFactory.getDefault().get("/"+path+"/"+id);
...somecallback here....
@Override
public void onMessage(String message) {
broadcaster.broadcast(message);
//here I want to destroy broadcaster and cleanup resources.
}
return new SuspendResponse.SuspendResponseBuilder<String>()
.broadcaster(broadcaster)
.outputComments(true)
.build();
}
我认为,这种方法也可能是错误的,还有其他方法可以使事情正常进行。有任何想法吗?谢谢!