首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websocket在握手后立即断开连接(guacamole)

Websocket在握手后立即断开连接(guacamole)
EN

Stack Overflow用户
提问于 2021-07-30 15:17:01
回答 1查看 236关注 0票数 1

请原谅糟糕的格式,因为这是我在这里的第一个问题,并提前感谢您的阅读!我目前正在编写一个远程web应用程序,它使用Apache Guacamole来允许RDP、VNC和SSH连接。我使用的组件是:

Django用于后端服务器- API调用(数据库信息)和Guacamole Websocket传输;我使用Pyguacamole和Django使用者来处理Guacamole服务器通信;Reactjs用于前端和代理;Nginx用于反向代理;所有这些都托管在Centos Stream 8虚拟机上

基本上,我的websocket无法通过代理进行通信。当我在没有代理的情况下运行应用程序时(在centos中的firefox直接运行localhost:3000 ),guacamole连接工作!尽管这是应用程序在端口8000上直接与Django服务器通信的地方。我想要的是让react应用程序为我代理websocket通信到端口8000,这样我的nginx代理就只需要处理生产端口3000。

下面是我为react代理(src/setupProxy.js)尝试过的代码:

代码语言:javascript
复制
const { createProxyMiddleware } = require('http-proxy-middleware');
let proxy_location = '';

module.exports = function(app) {
    app.use(createProxyMiddleware('/api', { target: 'http://localhost:8000', changeOrigin: true, logLevel: "debug" } ));
    app.use( createProxyMiddleware('/ws', { target: 'ws://localhost:8000' + proxy_location, ws: true, changeOrigin: true, logLebel: "debug" } ));
};

我也已经尝试过用http://localhost:8000作为ws的目标url。此外,api代理可以工作,但我不确定ws代理是否可以工作。发出websocket请求后,the consumer does a guacamole handshake, but disconnects the websocket before it can send anything back.

此外,the HPM output显示它确实尝试升级到websocket,但客户端立即断开连接。

如果你需要更多信息,一定要让我知道。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-30 16:03:32

我设法找到了问题所在,尽管我觉得有必要更新这个帖子,但这只是一个小错误。

基本上,在消费者中,我使用accept()代替websocket_accept(),使用receive()代替websocket_receive(),依此类推。我犯了一个粗心的错误,但希望这能帮助到一些人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68593379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档