首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有apache vhosts的Websocket

带有apache vhosts的Websocket
EN

Stack Overflow用户
提问于 2014-12-03 02:55:01
回答 1查看 527关注 0票数 0

我有两个apache虚拟主机,用于两个不同的应用程序:

代码语言:javascript
复制
<VirtualHost *:80>
    Servername socket1.app
    DocumentRoot d:\xampp\htdocs\socket1.app
    <Directory d:\xampp\htdocs\socket1.app>
        Allow from all
        AllowOverride All
        Order allow,deny
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    Servername socket2.app
    DocumentRoot d:\xampp\htdocs\socket2.app
    <Directory d:\xampp\htdocs\socket2.app>
        Allow from all
        AllowOverride All
        Order allow,deny
    </Directory>
</VirtualHost>

当我打开http://socket1.app时,它向ws://socket1.app:8080发送连接请求,http://socket2.app向ws://socket2.app:8080发送连接请求。

对于基于ratchet php的两个应用程序都有php服务器服务。但是应用程序连接到相同的php服务器(已经首先启动)。

如何将此套接字连接划分到每个应用程序php服务器服务?

EN

回答 1

Stack Overflow用户

发布于 2015-02-05 12:23:19

不能让两个websocket服务器实例在同一端口上运行。

您必须在不同的端口(例如8080和8081)上运行它们,或者根据主机名划分应用程序逻辑。

在RatchetPHP中,你可以这样做:

代码语言:javascript
复制
public function onMessage(ConnectionInterface $conn, $msg)
{
    // The host name that the client connected to (socket1.app or socket2.app)
    $host = $conn->WebSocket->request->getHost();

    // ... some logic depending on the host name
    // if ($host == 'socket1.app')
    // { 
    // ...
    // }
}

如果您的websocket应用程序具有完全不同的逻辑,则第一种方法更可取。

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

https://stackoverflow.com/questions/27256844

复制
相关文章

相似问题

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