国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java中實現兼容ie6 7 8 9的spring4+websocket

java中實現兼容ie6 7 8 9的spring4+websocket

2019-12-20 14:37hebedich JAVA教程

這篇文章主要介紹了java中實現兼容ie6 7 8 9的spring4+websocket程序代碼,十分的簡單實用,有需要的小伙伴可以參考下。

效果

java,spring4,websocket

不支持websocket的瀏覽器,用flash模擬websocket.當然,也可以用flash socket直接與服務端socket連接。

事實上,websocket協議比較簡單,用actionscript模擬也比較簡單,這個在本屌的另外一篇文章讓ie6 7 8 9支持html5 websocket簡單說了下。

另外,spring為sockjs 提供api,只需簡單配置下,就可以兼容低版本瀏覽器,原理是用js模擬websocket object。具體的本屌還沒有去看。

幾點說明:

1.使用spring對websocket的封裝既可以單獨使用,也可以和spring mvc一起使用。需要注意的是,單獨使用時,仍然要在web.xml中配置spring的dispatcher,仍然要打開server.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<servlet>
  <servlet-name>websocket</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      /WEB-INF/applicationContext.xml
    </param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>websocket</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

2.單獨使用時,若refer跨域,需要在spring中設置白名單

?
1
2
3
<websocket:handlers allowed-origins="*">
     ........
</websocket:handlers>

3.由于用到了flash,所以需要開啟843端口,并在flash請求policy文件時,返回policy文件。例子中用的是netty4.

4.需要對握手進行攔截,監聽。因為在后面的websocket處理類中,無法從WebSocketSession獲得session.另外,這里獲得session要保存到arrtibutes中,在websocket處理類中,WebSocketSession調用getAttributes()方法就可以獲得arrtibutes了。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class ChatIntercepter extends HttpSessionHandshakeInterceptor{
  
  @Override
  public boolean beforeHandshake(ServerHttpRequest request,
      ServerHttpResponse response, WebSocketHandler wsHandler,
      Map<String, Object> attributes) throws Exception {
    if (request instanceof ServletServerHttpRequest) {
      ServletServerHttpRequest servletRequest = (ServletServerHttpRequest) request;
      HttpSession session = servletRequest.getServletRequest().getSession(false);
      if (session != null) {
        String userName = (String) session.getAttribute("user");
        attributes.put("user",userName);
      }
    }
    System.out.println("Before Handshake"+request.getHeaders());
//    return super.beforeHandshake(request, response, wsHandler, attributes);
    return true;
  }
   ..............
 
}

5.在web-socket-js 中,flash模擬的websocket頭信息中會包含cookie,不過是人工通過腳本添加的。所以要避免需要的cookie,如session cookie是httponly.這就需要設置容器。

如果當前是在eclipse中開發

java,spring4,websocket

可以看到在context標簽上添加useHttpOnly='false'就可以了,而context標簽是eclipse部署時自動添加的。

如果已經打包了,就到tomcat目錄/conf/server.xml,在最后的</Host>前面添加

 

復制代碼 代碼如下:

<Context docBase="websocket" path="/websocket" reloadable="true" useHttpOnly='false'/>

 

意思所述就是本文的全部內容了,希望大家能夠喜歡。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一区久久 | 日韩成人在线看 | 黄色av免费网站 | 欧美1页| 中文字幕免费中文 | 国产专区在线 | 欧美另类国产 | 日韩有码在线视频 | 久久精品国产99 | 一区二区三区动漫 | 九九热精品视频在线免费观看 | 亚洲激情在线 | 国产黄网站 | 欧美一级免费看 | 黄视频网站免费观看 | 精品一区二区三区免费毛片爱 | 亚洲高清视频一区 | 国产99久久精品一区二区永久免费 | 特级西西人体444www高清大胆 | 欧美日韩国产一区二区三区不卡 | 99热在线播放 | 免费av在线| 亚洲国产精品久久 | 羞羞av | 欧美精品久久久 | av成人在线观看 | 国产精品高清在线 | 亚洲福利在线观看 | 五月激情综合网 | 色九九 | 国产精品日韩欧美 | 精品第一页 | 免费av一区| 黄色av一级片 | 国产性猛交xxxx免费看久久 | 亚洲免费国产视频 | 国产成人精品综合 | 亚洲成人高清在线 | 精品一区二区在线观看 | 色综合天天综合网国产成人网 | 亚洲专区在线播放 |