Я просто пытаюсь получить рукопожатие WebSocket с помощью javascript, apache, php.WebSockets (JS, Apache, PHP)
Для ясности, прежде чем мы начнем:
- версия Сервера: Apache/2.4.7 (Ubuntu)
- PHP 5.5.9-1ubuntu4.14
- Chrome версия 47,0. 2526.106 (64-бит)
- У меня есть порт 8080 и 8090, открытый и принимающий как на IPv4/IPv6
{КЛИЕНТ}
Когда вы идете в example.com:8080 он будет работать следующий JS инициализации.
// JS
function init(){
var socket = new WebSocket("ws://example.com:8090"); //redirect on port 8090
socket.send("Here's some text that the server is waiting for");
}
{SERVER}
// APACHE (виртуальный конфигурации хоста) * mod_proxy & mod_proxy_wstunnel установлены
<VirtualHost *:8090>
ServerName example:8090
DocumentRoot /var/www/vhost/uploader
ProxyPass "/sockets/" "http://example.com:8090"
</VirtualHost>
// PHP (/ вар /www/vhost/uploader/sockets/index.php)
<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$ip = 'example.com';
socket_bind($sock, $ip);
socket_connect($sock, $ip, 8090);
$request = 'GET/HTTP/1.1' . "\r\n" .
'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);
socket_close($sock);
?>
Я смущен тем, что Apache выполняет привязку/прослушивание сокета и порта, поэтому я не знаю, как получить к нему доступ в PHP.
Хорошо, я не был уверен, что Apache передал его через некоторую переменную PHP. Таким образом, действительно apache (mod_proxy) строго перенаправляет запрос и поддерживает «соединение-живое» и позволяет устанавливать-config для клиентских подключений, вы все равно будете '$ sock = socket_create (AF_INET, SOCK_STREAM, SOL_TCP)' в php и все это , –
Да, я видел socket.io, я написал свой собственный веб-сервер сокета раньше, чем в C, я просто новичок в этих директивах apache, так что все еще учась и немного теряюсь, так как есть примеры из онлайн-примеров. как. –