一 、Nginx配置websocket
 
为了解决Nginx转发不能进行websocket通信问题
将nginx配置文件添加如下内容:
 
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server 192.168.100.10:8010;
}
server {
listen 8020;
location / {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
 
二、Nginx拦截器解决浏览器兼容问题

public class HandshakeInterceptor extends HttpSessionHandshakeInterceptor {

private final Logger logger = LoggerFactory.getLogger(HandshakeInterceptor.class);

@Override
public boolean beforeHandshake(ServerHttpRequest request,
ServerHttpResponse response, WebSocketHandler wsHandler,
Map<String, Object> attributes) throws Exception {
logger.info("==============Before Handshake===============");
/** 在拦截器内强行修改websocket协议,将部分浏览器不支持的 x-webkit-deflate-frame 扩展修改成 permessage-deflate */
if(request.getHeaders().containsKey("Sec-WebSocket-Extensions")){
request.getHeaders().set("Sec-WebSocket-Extensions", "permessage-deflate");
}
return super.beforeHandshake(request, response, wsHandler, attributes);
} @Override
public void afterHandshake(ServerHttpRequest request,
ServerHttpResponse response, WebSocketHandler wsHandler,
Exception ex) {
logger.info("==============After Handshake===============");
super.afterHandshake(request, response, wsHandler, ex);
} }
 

最新文章

  1. CodeForces - 662A Gambling Nim
  2. js禁用右键菜单、选中、复制、剪切、粘贴
  3. 微信&quot;流量红包&quot;的玩法攻略 广东移动用户有福啦
  4. block的使用
  5. TreeSet和Comparator 对TreeSet排序
  6. 使用MarkdonPad2学习心得
  7. ExpressRoute
  8. 图解TCP/IP读书笔记(二)
  9. Java从入门到精通——数据库篇之OJDBC版本区别
  10. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
  11. is present but cannot be translated into a null value due to being declared as a primitive type
  12. inline-block布局方式
  13. Linux C/C++计划Shell命令大杂烩(1)
  14. 构建一个真实的应用电子商务SportsStore(十)
  15. RE模块错误已解决.
  16. MSM平台RPM
  17. JS倒计时两种种实现方式
  18. 更新glibc版本,有问题,有三篇博客的命令看不懂
  19. [android开发教程] 一个神奇的Demo 帮你掌握所有android控件
  20. day_5.21 py 高级编程

热门文章

  1. LOG收集系统(一):原日志至收集
  2. 基于tiny4412的Linux内核移植(支持device tree)(一)
  3. 某游戏研究之字符过滤类-WorldFilter
  4. 二十四种设计模式:解释器模式(Interpreter Pattern)
  5. xss payload
  6. axios踩坑记录+拦截器使用+vue cli代理跨域proxy+webpack打包部署到服务器
  7. MVP+Dagger2+Rxjava+Retrofit+GreenDao 开发的小应用,包括新闻、图片、视频3个大模块,代码封装良好
  8. 【云计算】OpenStack Horizon DashBoard定制化,完整实现前后台交互
  9. Android媒体扫描详细解析之一(MediaScanner &amp; MediaProvider)
  10. Android 面试题目汇总