【问题标题】:Flutter websocket connection issue - Connection not upgraded to websocketFlutter websocket连接问题 - 连接未升级到websocket
【发布时间】:2020-12-25 13:37:28
【问题描述】:
IO.Socket socket = IO.io('https://*****.com/*****/');
socket.connect();
socket.io.options['extraHeaders'] = {
  'foo': 'bar',
  'Authorization': 'Bearer $_token',
};
socket.onConnect((_) {
  print('connect');
  socket.emit('msg', 'test');
});

socket.on('event', (data) => print(data));
socket.onDisconnect((_) => print('disconnect'));
socket.onConnectError((handler) => print(handler.toString()));
socket.onError((_) => print('onError'));
socket.on('fromServer', (_) => print(_));

flutter: WebSocketException: Connection to 'https://**********.com:0/socket.io/?EIO=3&transport=websocket#' 没有升级到 websocket **

【问题讨论】:

    标签: spring-boot flutter socket.io stomp


    【解决方案1】:

    我有同样的问题

    我有聊天服务(使用 SocketIO + Strapi),如果它位于 localhost/private_IP 中,它可以正常工作,我可以将我的模拟设备和我的手机连接到我的服务聊天

    但我必须用 docker 和 nginx 来部署它, 为此,我有我的 docker_compose.yaml

    chat:
      image: strapi/strapi
      volumes:
        - ./chat:/srv/app
      ports:
        - '3000:3000'
      # build:
      #   ./backend/backend
      environment:
        DATABASE_CLIENT: chatDB
        DATABASE_HOST: chatDB
        DATABASE_NAME: databaseName
        DATABASE_PORT: 27017
        DATABASE_USERNAME: root
        DATABASE_PASSWORD: databasePass
      links:
        - chatDB
    

    还有我的位置-nginx

    location /chat/ {
        rewrite ^/chat/(.*)$ /$1 break;
        proxy_pass http://chat:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass_request_headers on;
    }
    

    聊天服务有点用,因为如果我向 /chat/users 发出请求,我就会得到响应

    PD:我不喜欢 Nginx

    【讨论】:

      猜你喜欢
      • 2021-01-15
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-22
      • 2021-10-17
      相关资源
      最近更新 更多