我在Jboss上运行了@ServerEndpoint,它持有websocket连接。客户不希望通过@ServerEndpoint的@onMessage完成数据推送,而是希望向某个REST端点发送POST请求,然后将数据推送到websocket连接(是的,我也没有得到它)。所以我的问题是;我可以从REST端点获取websocket会话,而无需打开服务器到服务器连接到@ServerEndpoint(因此用户的安全上下文被破坏)?
所以我需要这样的东西:
@Controller
@Path("/path")
public class WebsocketController {
@GET
public void doPost(String text) {
//somehow get all websocket connections to the @ServerEndpoint
//then for all sessions do:
session.getBasicRemote().sendText(text);
}
}
任何明智的解决方案都会放在@ServerEndpoint的@OnMessage方法中
答案 0 :(得分:0)
我最后得到了一个同步的Sessions列表,我在@OnOpen og @OnClose上维护它,它保存所有打开的连接。然后我从REST端点推送到这些连接。