如何解决Flutter Socket.io未连接到域
我一直试图通过flutter连接到socket.io,但没有成功。 到目前为止,我尝试过:
1。 flutter_socket_io:
SocketIO socket = SocketIOManager().createSocketIO(
"https://my-socket.example.com","",query: "",socketStatusCallback: _socketStatus);
socket.init();
socket.connect();
...
_socketStatus(dynamic data) {
print("Socket status: " + data);
}
状态回调显示:
D/FlutterSocketIoPlugin: SocketIO(20041): connect_error: [{"cause":{"detailMessage":"Expected HTTP 101 response but was \u0027400 Bad Request\u0027","stackTrace":[],"suppressedExceptions":[]},"detailMessage":"websocket error","suppressedExceptions":[]}]
2。 socket_io_client
socket = IO.io('https://my-socket.example.com',<String,dynamic>{
'transports': ['websocket'],'autoConnect': false,'verify': false,'extraHeaders': {'foo': 'bar'},'query': {'user': guid}
});
socket.on('connect_error',(c) {
log(c.toString());
});
socket.connect();
connect_error事件日志:
[log] WebSocketException: Connection to 'https://my-socket.example.com:0/socket.io/?user=d9c5d5bd-a831-43ed-9a59-20dbac14da8a&EIO=3&transport=websocket#' was not upgraded to websocket
我在这里一直在阅读: websocket not upgraded error #11444 但还是没有得到
我的nginx服务器配置为:
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location /
{
proxy_pass http://127.0.0.1:3003;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_cache_bypass $http_upgrade;
}
如果我通过VueScoketIO客户端作为C#客户端进行连接,但套接字无法正常工作,则套接字工作正常。
如果我在本地连接到127.0.0.1,就会尝试并工作,就像我连接到192.168 ...这样的本地ip一样,但不能连接到生产域。
还尝试连接到ws://echo.websocket.org,但也无法正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。