通过 apache 代理运行 socket.io 的问题

2024-05-29

最近我从使用端口号转向 apache 代理,现在我收到以下浏览器控制台错误:

VM6:1 获取400(错误请求)

VM6:1 后400(错误请求)

我的 apache 日志文件充满了这些消息:

[Mon Mar 02 18:25:03.199849 2020] [proxy:error] [pid 28494] (111)连接被拒绝:AH00957:HTTP:尝试连接到 127.0.0.1:20005 (localhost) 失败

[Mon Mar 02 18:25:03.199892 2020] [proxy:error] [pid 28494] AH00959: ap_proxy_connect_backend 禁用 (localhost) 的工作人员 5 秒

[Mon Mar 02 18:25:03.199898 2020] [proxy_http:error] [pid 28494] [client 71.223.254.40:50269] AH01114:HTTP:无法连接到后端:本地主机,引荐来源:https://example.com/proxyPort20005/ https://example.com/proxyPort20005/

--

我确实发现使用端口和代理之间有一个有趣的区别。使用端口号,当我输入以下内容时:

这些结果返回到浏览器窗口中:

96:0{"sid":"XXXX","升级":["websocket"],"pingInterval":25000,"pingTimeout":5000}

但是当我使用代理尝试相同的操作时:

我看到可疑的结果,与我使用端口号时非常不同:

{"code":1,"message":"会话 ID 未知"}

奇怪的是,除了所有错误消息之外,一切似乎都工作正常。

我的 httpd.conf 配置如下:

 ## 2020-03-02 - tried acquire
 ## 2020-03-02 - tried disablereuse=on
<Location /proxyPort20005/>
        ProxyPass http://localhost:20005/ Keepalive=On retry=5 timeout=600
        ProxyPassReverse http://localhost:20005/
</Location>

有人对我下一步可以尝试什么有什么建议吗?

非常感谢大家。


经过大量时间和努力,我有两个解决方案:

##  thank you lopezdonaque @ https://github.com/socketio/socket.io/issues/1696

RewriteEngine On 
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteRule /proxyPort3030/(.*) ws://localhost:3030/$1 [P,L]

<Location /proxyPort3030/>
    ProxyPass               http://localhost:3030/
            ## it seems to work fine without proxyPassReverse ??
    ProxyPassReverse        http://localhost:3030/
</Location>

const socket = io.connect
            (
                    {       'path'  : window.location.pathname + 'socket.io'
                    ,       'transports'    : ['websockets', 'polling']
                    }
            );

这也有效,但是,我希望 WebSockets 和轮询都能工作,这个例子只有轮询:

<IfModule mod_proxy.c>
  <Proxy *>
    Order allow,deny
    allow from all
  </Proxy>
</IfModule>

ProxyPass          /proxyPort3030/                 http://localhost:3030/
ProxyPassReverse   /proxyPort3030/                 http://localhost:3030/
ProxyRequests off

const socket = io.connect
            (
                    {       'path'  : window.location.pathname + 'socket.io'
                    ,       'transports'    : ['polling']
                    }
            );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 apache 代理运行 socket.io 的问题 的相关文章

  • Node.js 解析路由的最小函数

    我有一个 Node js Express 应用程序正在运行 它接收如下路由 app get resource res someFunction app get foo bar id someOtherFunction 这很棒并且工作正常 我
  • Socket.IO 处理断开事件

    无法处理这个断开事件 不知道为什么套接字没有发送到客户端 客户端没有响应 Server io sockets on connection function socket socket on NewPlayer function data1
  • 使用socket.io进行用户身份验证

    我已经红色了这个教程 http howtonode org socket io auth http howtonode org socket io auth 它展示了如何使用express和socket io对用户进行身份验证 但是有没有一
  • PrototypeJS 版本 1.6.0.2 覆盖 JSON.parse 和 JSON.stringify 并破坏 socket.io 功能

    基本上 socket io 使用 nativeJSON 来编码和解码数据包 而我的问题是我必须使用这个版本的原型来改变 JSON 行为 当我应该进入服务器时 如下所示 socket on event function a b c 我明白了s
  • socket.io 中的消息排序

    socket io 是否保证 on 回调将按照消息发出的顺序调用 Node js 是单个事件循环 所以是的 但是你还有另一个问题 考虑你和你的客户端之间的延迟 如果两个客户端发送消息 到达服务器的第一条消息将首先被处理 所以如果第一个客户端
  • Android 中所有活动的单套接字 IO 连接

    我已经为 SocketIOClient 参考创建了 Singleton 类here https stackoverflow com questions 13709783 android socket io switch activities
  • Socket.IO - 开放连接是一个问题吗?

    我目前正在与DerbyJS http derbyjs com 因为它促进了干净 干燥的客户端 服务器代码 附带好处 大多数人使用该框架的主要原因 是它使用 Socket IO 来创建实时应用程序 在这种情况下 我不need实时 但这是一个很
  • 可以模拟多个并发连接来测试 Nodejs 应用程序

    我有一个简单的node js socket io websockets 应用程序运行 localhost 我想看看它可以处理多少并发连接 是否可以在本地主机本身上模拟多个并发用户 这是我使用 socket io client 的半生尝试 f
  • 带有 socket.io 的 Node.js 服务器可同时处理 50000 个客户端

    我们正在开发一个 Javascript 控件 它应该不断连接 到服务器以接收动画更新 我们计划将这些东西托管在亚马逊云上 场景是这样的 服务器连接到 activemq 队列等待更新 对于每个更新 它都会将其广播到所有连接的客户端 是否可以使
  • 如何修复套接字 io 中的 400 错误错误请求?

    我有一个前端应用程序 VUE JS 我有一个后端 Nest JS Vue JS 应用程序使用 vue socket io extended 库通过 websockets 从后端获取数据 当 Vue JS 应用程序启动时 我在浏览器中看到错误
  • 节点socket.io,有什么可以防止洪水吗?

    我怎样才能阻止某人简单地做 while true client emit i am spammer true 当有人想要让我的节点服务器崩溃时 这肯定会成为一个问题 就像 tsrurzl 说的 你需要实施一个速率限制器 https en w
  • 如何使用ssl启动flask_socketio应用程序?

    我应该如何使用 SSL 将 app run 转换为 sockio run 我有下面的应用程序启动代码与 Flask 开发服务器一起运行 if name main app run ssl context ssl cert ssl key 我现
  • 有人在node/socket.io 中成功实现了动态命名空间吗?

    含义 用户对应用程序进行身份验证 gt 应用程序设置socket io连接的命名空间 http www socketioserver com NAMESPACE 并且节点服务器相应地响应无需针对特定名称空间进行硬编码 到那个特定的命名空间
  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Heroku 多个 dyno socket.io

    我正在使用 Socket io 开发一个 node js 应用程序 并将其部署在 Heroku Dyno 上 Socket io 使用 RedisStore 及其 PUB SUB Socket io 客户端与 Heroku 中的一个 dyn
  • IE 和 Socket.io 兼容性

    我做了一些聊天示例 如下所示 http psismike com 2011 09 node js and socket io chat tutorial http psitsmike com 2011 09 node js and sock
  • 基准测试socket.io

    我想对我的 socket io 服务器进行基准测试 我想测试服务器可以处理多少并行连接和消息 但是当我用大约 200 个 websocket 启动基准测试几分钟后 我的 socket io 服务器崩溃了 我尝试使用node js的集群模块将
  • socket io 反复改变socket.id

    这是正常行为吗 socket io 1 3 2 js来自客户 socket io connect https socket myserver nl socket on connect function socket emit registe
  • socket.io 切换命名空间

    我目前正在与 socket io 进行简单的聊天 基础知识已经可以工作 但现在我正在尝试实现 2 个不同的命名空间 我希望客户端能够通过单击按钮从一个命名空间 支持聊天 切换到另一个命名空间 朋友聊天 服务器端 default namesp
  • NodeJS 和 PHP (Laravel) 集成用于 Socket.IO 实时聊天

    目前我有一个我写过的网站PHP通过Laravel 框架 我已经使用写了一个实时聊天nodeJS with 套接字IO and Express现在我想做的是将它集成到我已经编写的 Laravel 网站中 问题是聊天必须在主页中 当前由 Lar

随机推荐

  • 通过 PEAR 安装 PHPUnit

    我安装时遇到问题PHPUnit 3 4 6 via 梨1 9 0 当我发现频道后pear phpunit de并尝试使用以下命令之一 pear 安装 phpunit PHPUnit pear 安装 alldeps phpunit PHPUn
  • 拖放到 Powershell 脚本

    我以为我已经找到了这个问题的答案 但我玩得越多 我就越发现它是 Powershell 的设计缺陷 我想拖放 或使用发送到机制 将多个文件和 或文件夹作为数组传递到 Powershell 脚本 测试脚本 Test ps1 param stri
  • 如何从默认包中导入类

    可能的重复 如何访问默认包中的java类 https stackoverflow com questions 283816 how to access java classes in the default package 我正在使用 Ec
  • 突出显示 extjs4 折线图的一部分

    在 extjs 4 1 1a 中 下面的代码是折线图的工作示例 现在我需要在给定的最小和最大时间戳上突出显示该图表的一部分 xtype chart store ChartData height 100 width 100 legend po
  • 如何在 Hunspell 中检查拼写(不区分大小写)

    您好 我正在制作一个桌面应用程序 C 来检查输入单词的拼写 我正在使用 Hunspell 我使用 NuGet 将其添加到我的项目中 我有 2 个文件 aff 文件和 dic 文件 using Hunspell english new Hun
  • Resharper 和 ViEmu 键绑定(和视觉辅助)

    使用 ViEmu 您确实需要取消绑定许多 resharpers 按键绑定才能使其正常工作 是否有人拥有他们认为在使用 ViEmu 时适合 resharper 的一套良好的按键绑定 我目前正在使用 Resharper 的 Visual Stu
  • 无法从 Spring Cloud 配置或环境变量中解密属性

    我正在尝试获取我的 KMS 库 在这里找到 https github com hfgbarrigas gcp kms spring boot 解密来自 Google Cloud 配置服务器或环境变量的 application yml 中的项
  • 带有 .Where 子句并使用 Contains 的 Lambda 表达式

    连接到 CRM 2013 时 有一种智能方法可以创建 lambda 表达式 以获取列表中 GUID 的实体 此代码破坏了Where子句并给出错误 where 条件无效 实体成员正在调用无效的属性或方法 Code private List
  • Mongoose查询结果是只读的吗?

    如何修改 Mongoose 查询返回的对象 假设我们有以下模式 var S new mongoose Schema name String field String 我对结果进行了以下查询和修改 var retrieve function
  • Android开发设备[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一款用于开发 Android 应用程序的设备 手机 平板电脑等 我知道我可以使用模拟器来开始
  • 在 C# 中将 ' 替换为 \'

    在这个变量中 我想在每个 之前添加一些 string html a href Calendrier de l annee prochaine a html html Replace No change html html Replace N
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • 实体框架在多对多更新场景中附加问题

    我有一个场景 我希望更新电影实体及其与流派的多对多关系 导航属性Genres电影中包含存根Genre只包含的对象GenreID因为我想节省查询所有流派的数据库 请参阅下面的代码 其相当不言自明 问题是我需要将 存根 流派附加到上下文 以便
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 在 VS Toolbox 中安装自定义控件

    我们公司提供安装 Inno Setup 的第三方组件 我们用VS套餐自动将我们的组件放入 Visual Studio Toolbox 中 但有时会失败 VS 包还需要一些名为 包加载密钥 尽管我们对其进行了测试 但 Visual Studi
  • JSP模板实现(复合视图模式)

    为 Java 网站实现复合视图模式的最佳方法是什么 我的想法是采用一个 jsp 并包含多个页面 例如 h1 Layout Start h1
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • 获取颜色位置的深度,Kinect SDK

    我正在寻找方法 尽快 从 Kinect 相机获取颜色像素的相应深度 我找到了 MapDepthFrameToColorFrame 函数 但这只给我特定深度位置的颜色 我想要相反的颜色 我想要这个的原因是我将能够单击 RGB 图像上的某个位置
  • 从 HTML 字符串中解析和选择

    使用 ajax 调用 我返回了页面的partialView HTML 但在显示它之前 我希望从主 div 中提取信息 如果我创建一个浮动窗口 该数据只是大小信息 Code div class window details more data
  • 通过 apache 代理运行 socket.io 的问题

    最近我从使用端口号转向 apache 代理 现在我收到以下浏览器控制台错误 VM6 1 获取400 错误请求 VM6 1 后400 错误请求 我的 apache 日志文件充满了这些消息 Mon Mar 02 18 25 03 199849