美文网首页
WebSocket配置与测试

WebSocket配置与测试

作者: xyz098 | 来源:发表于2019-08-21 19:58 被阅读0次
WebSocketHTTP协议的区别
  • HTTP协议只能由客户端发出请求,服务端返回消息
  • WebSocket协议则可以服务器主动向客户端推送消息,双向平等对话,全双工通信
WebSocket特点

websocket介绍-CSDN

  • 建议在TCP协议之上
  • 默认80和443端口,握手阶段采用HTTP协议,能够通过HTTP代理服务器
  • 没有同源限制,客户端可与任意服务器通信
  • 协议标识符是ws,(加密则为wss
nginx配置与验证

命令验证websocket 验证websocket

  • 配置

    server {
        listen 80;
        server_name  abc.abc.com;
        
        location ^~ /ws/interaction {
          rewrite /ws/interaction/(.*) /$1 break;
            proxy_connect_timeout 10s;
            proxy_read_timeout 3600s;
            proxy_send_timeout 12s;
            # 关键配置项,设置header的Upgrade、Connection
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass   http://192.168.1.119:8999;
        }
    }
    
  • 验证

    # install 
    npm install -g wscat
    
    # use
    wscat -c "ws://abc.abc.com/ws/interaction"
    
ingerss配置与测试

kubernetes-ingress-websocket

  • 配置

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: interactive-ingress-test
      namespace: test-crm
      annotations:
        kubernetes.io/ingress.class: nginx 
        nginx.ingress.kubernetes.io/proxy-body-size: 200m
        # 支持websocket操作
        nginx.org/websocket-services: "ws-web-test"
        nginx.ingress.kubernetes.io/configuration-snippet: |
          proxy_set_header zone test;
          rewrite /ws/interaction/(.*) /$1 break;
    spec:
      rules:
      - host: abc.abc.com
        http:
          paths:
          - path: /ws/interaction
            backend:
              serviceName: ws-web-test
              servicePort: tcp8999
    
  • 验证

    # kubectl get svc -n ingress-nginx
    NAME            TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
    ingress-nginx   NodePort   172.16.255.225   <none>        80:30080/TCP,443:30106/TCP   158d
    
    使用容器ip
    # wscat  -H 'Host:abc.abc.com'  -c 'ws://172.16.255.225/ws/interaction'
    使用外网ip
    # wscat  -H 'Host:abc.abc.com'  -c 'ws://11.11.111.111/ws/interaction'
    
  • 注意

    若访问ingress返回404,则可能访问配置rewrite导致

相关文章

网友评论

      本文标题:WebSocket配置与测试

      本文链接:https://www.haomeiwen.com/subject/lgtwsctx.html