问题描述
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 **
解决方法
我也有同样的问题
我有聊天服务(使用 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 感到很糟糕