gpt4 book ai didi

android - 通过反向代理服务器将 socket.io android 客户端连接到套接字服务器

转载 作者:行者123 更新时间:2023-11-29 02:28:10 28 4
gpt4 key购买 nike

我正在尝试连接到在 Nginx 反向代理后面运行的 socket.io 服务器。我的 Nginx 代理服务器使用 https 配置运行 https://api.xxx.com。 Node js socket.io 服务器正在另一台服务器上运行,配置为 http config http://a.b.c.d:8081/app/v2

在 android 端作为套接字客户端,我正在使用 implementation 'com.github.nkzawa: socket.io-client:0.3.0

代理配置如下:

location /app/v2 {

proxy_cache apicache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale error timeout updating http_500 http_502
http_503 http_504;
proxy_cache_lock on;
proxy_cache_bypass $http_cache_control;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_methods GET;
proxy_cache_valid 200 302 2s;
proxy_cache_valid 404 1m;

proxy_pass http://a.b.c.d:8081/app/v2;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

}

Node 服务器:

socketio = socketio.listen(server);
socketio.set('transports', ['websocket']);
socketio.of('/app/v2/socketio/livefeed/').on('connection', function (socket) {
console.log("device connected");
socket.emit('clientAction','connected');
socket.on('disconnect', function () {
console.log("device disconnected");
socket.emit('clientAction','disconnected');
});
});

像这样尝试将 android 应用程序连接到套接字时

`try { 
mSocket = IO.socket("https://api.xxx.com/app/v2/socketio/livefeed/");
} catch (URISyntaxException e) {
Log.d(TAG, String.valueOf(e));
}
mSocket.connect();`

套接字客户端未连接到 socket.io 服务器。android socket client 应该如何连接到代理服务器后面的socket server?

最佳答案

您使用的 url 是问题所在,因为出于路由目的,您可能无论如何都需要将它传递给代理,请在您的 nginx conf 中尝试以下操作。希望这会有所帮助。

location ~ /app/v2/(?<section>.*) {

proxy_cache apicache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale error timeout updating http_500 http_502
http_503 http_504;
proxy_cache_lock on;
proxy_cache_bypass $http_cache_control;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_methods GET;
proxy_cache_valid 200 302 2s;
proxy_cache_valid 404 1m;

proxy_pass http://a.b.c.d:8081/app/v2/$section;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;



}

关于android - 通过反向代理服务器将 socket.io android 客户端连接到套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51037402/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com