- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在尝试设置 Ratchet 一段时间。并遇到了另一个障碍。我遵循了本教程 http://socketo.me/docs/hello-world一切似乎都在本地机器上运行。但是,当我尝试从远程机器访问它们以进行测试时,我不能。在帮助和故障排除部分下,它声明将聊天服务器程序绑定(bind)到 0.0.0.0,但我这样做无济于事。目前我在端口 9680 上运行它,因为系统上正在使用 80 和 8080。 (正在运行 apache 服务器)关于如何解决此连接问题的任何帮助或建议将不胜感激,因为在我可以远程访问 Websockets 之前,我无法继续我的项目。我对服务器管理相当陌生,所以我对如何设置它的了解相当少。提前致谢!
最佳答案
您实际上不应该在生产中将 WebSocket 服务器绑定(bind)到 0.0.0.0。在服务器的上下文中,0.0.0.0 表示“本地机器上的所有 IPv4 地址”。因此,假设您的服务器的公共(public) IP 地址为 1.1.1.1,本地/私有(private) IP 地址为 192.168.0.1,那么这意味着可以从两个 IP 访问绑定(bind)到 0.0.0.0 的应用程序(至少可以路由到那些地址)。通常,在生产设置中,这不是您想要的。通常,您希望绑定(bind)到特定网络接口(interface)上的特定 IP 地址,因为您确切地知道您的主机将监听什么。
需要注意的常见问题
您要注意的另一个问题是,绑定(bind)到公共(public)接口(interface)通常需要 root 权限。在没有提升权限的情况下尝试这样做通常会导致打开 TCP 套接字时出错。还有地址已被使用 问题,这可以通过确保您拥有 SO_REUSEADDR
来解决在 socketopt 上设置(不过,我相当确定 Ratchet 默认情况下会为您执行此操作)。此外,如果您正在运行 SELinux,则总是有可能您的政策不允许监听该端口。然后是防火墙网络配置问题,防火墙或网络硬件的某些部分阻止了端口。
Ratchet 和 Apache 通过同一端口
拥有 Multi-Tenancy 服务器的另一个缺点是,如果您想同时为来自 Apache httpd 网络服务器和 PHP WebSocket 服务器的 HTTP 流量提供服务,则不能在没有在他们面前放置一个反向代理。其实这就是Ratchet recommends for production在他们的文档中。
一般的想法是有一个 reverse proxy like HAProxy ,绑定(bind)到在端口 80/443 上监听的公共(public) IP,然后将其配置为将特定流量路由到您的 PHP WebSocket 服务器(它可能会监听本地环回或本地网络接口(interface))或您的 Apache httpd 网络服务器,具体取决于说例如,一组特定的路由或一些 cookie。
关于php - 远程 Ratchet 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38754203/
我需要一起实时收听 2 个网络套接字 URL。我创建了 2 个连接到不同 URL 的连接,但我只看到了第一条消息结果。如何在没有关闭第一次连接的情况下从 wss://exalpme2 获取消息? 我的
我正在尝试根据 YouTube 中的教程创建基本的 websocket 聊天,但在运行时我在终端中遇到了这个错误 php bin/server.php Fatal error: Interface '
我正在尝试在 Ratchet 中使用 sessionProvider,以下是我的 shell 脚本: namespace App\Console\Commands; use Ratchet\S
我正在尝试在我的系统上设置 Ratchet 并关注了 socketo.me 我已经做了一切,直到安装 ZMQ 和 React/Zmq 并且一切都成功了。 但是当我尝试运行时 push-server.p
我正在为我的应用程序使用 PHP Ratchet(推送集成),并具有实时出价功能,它的工作原理非常棒。 由于高流量,我们将我们的应用程序移到 AWS 平台上,我们有多个应用程序服务器实例,其中一个(R
我正在使用 Ratchet 为群聊启用推送通知。 我决定做以下事情: 每当用户连接时,为他订阅他参与的所有群组主题以及个人消息主题。 我有一个数组 protected $subscribedTopic
我只是在学习 Ratchet(用于 PHP 实时聊天应用程序的库)。根据文档,以下函数将收到两件事: 消息来自谁和 信息。 然而,它错过了发送给谁。此功能将消息发送给所有连接的人。但我也想实现一对一聊
我使用 Ratchet php 创建了一个网络套接字连接。我连接了一个客户端,然后执行了一个查询(执行查询大约需要 20 秒),同时我尝试连接另一个客户端,我看到网络套接字连接处于挂起状态(仍在尝试切
我正在开发一个具有聊天功能的网站,当用户收到新消息时需要即时通知。我正在尝试决定是使用 Ratchet 服务器还是使用 AJAX 实现长轮询系统。我目前已经实现了一个基本的 Pub/Sub Ratch
我正在尝试使 Ratchet 推送教程起作用。 http://socketo.me/docs/push 我正在按照教程所说的做,但我的订阅者不会收到任何消息。 我的服务器.php getSocket(
我开始使用 PhP Ratchet 套接字。按照指南,我可以制作一个简单的聊天应用程序,它可以在同一台计算机上运行。例如,如果我打开chrome和firefox,我可以交互发送和接收消息,ok。 问题
我是尝试实现 Ratchet 的编程初学者。 这是我当前的文件结构 D:\Xampp composer.phar htdocs Ratchet composer.
在 documentation , 他们有: Item 2 问:这只是打字错误,还是他们出于某种原因将 table-view-cell 放入了两次? 最佳答案 前几天我注意到了同样的事情并打算调查..
我是网络套接字编程的新手。我正在 codeigniter 中实现 web socket 以实现简单的聊天功能,我的配置看起来像这样 $config['ratchet_client'] = array
最近一直在学习如何使用 Ratchet 在 PHP 中实现 websockets,但我不知道如何让它与按钮点击一起工作。 这是我当前的 JS/jQuery 代码: jQuery(documen
我有一个托管在 AZURE 平台上的 Ubuntu 服务器。 SSH 的 IP 是 52.XX.XX.XX,如果我这样做了 ifconfig 表明 eth0 Link encap:Ethernet
我目前正在为 UI 使用 Ratchet 框架,并且想知道如何在页面之间共享信息(例如用户输入的数据)。该网站似乎没有涵盖这一点,我似乎无法找到任何类型的教程。 最佳答案 您最好的选择是使用 HTML
我已经使用 Ratchet 集成了 pusher。向所有用户广播工作正常。 现在我试图找到一种方法,当我连接到特定用户时如何向特定用户发送消息。 在 subscribe 上执行的方法: public
在客户端: var ws = new WebSocket('ws://localhost:8082/chat?id=123&tid=7'); 在服务器端 class MyApp implements
我使用 Ratchet 作为一些基于浏览器的游戏的套接字服务器,我注意到一个非常奇怪的行为。 我的应用程序类实现了 WampServerInterface,我注意到在 4-5 个客户端连接和断开连接(
我是一名优秀的程序员,十分优秀!