点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我设法使用spring-boot创建websocket,并使用Java客户端连接到应用程序。 在afterConnectionFounded(WebSocketSession会话)回调中,我能够看到HttpHeaders(通过session.getHandshakeHeaders()),我确实是在客户端这样设置的(*):
ClientUpgradeRequest请求=新的ClientUpgradeRequest();
request.getHeaders()。put(" foo",Arrays.asList(new String [] {" bar"})))
我想使用粘性Websocket,以便当客户端重新连接到Websocket时,它像以前一样被定向到相同的应用程序实例(当然,如果有的话)。
对于Servlet,可以轻松地应用JSESSIONID并解析Set-Cookie标头的共振(必须在下一个请求中添加JSESSIONID _AND_ __VCAP_ID__才能使其工作...)。
对于Websocket连接,我想到了一个想法,即首先向位于同一应用程序中的Servlet执行一个简单的GET请求,然后将JSESSIONID和__VCAP_ID__放在(*)之类的ClientUpgradeRequest上。
令我惊讶的是,Cookie似乎无法到达我的应用程序,并且选择了应用程序实例,就像路由器在处理ClientUpgradeRequest时忽略JSESSIONID和__VCAP_ID__一样。
有人对粘性websockets或任何评论有更好的主意吗?
最好的问候
坦率
解决了。 我的错误是,由于丢失,码头客户不接受Cookie
WebSocketClient客户端=新的WebSocketClient(ssl);
client.setCookieStore(new HttpCookieStore()); //<-Cookiestore默认为虚拟实现
现在可以了。
一周热门 更多>