2012-04-10 11 views
1

これは簡単な質問のように見えるかもしれませんが、私の考えはうんざりです。デーモンを実行できないとします。websocketサーバーを設定するにはどうすればいいですか?デーモンを実行しないでWebSocketサーバーを設定する

(詳細:Apacheの2.2.21、PHP 5.3.9、それほど好ましくはPHPで)

+0

まだZeroMQのようなデーモンが必要です –

答えて

2

:HOWTOから

PHPには、古いHixie WebSocketプロトコルと新しいHyBi/IETFプロトコルを同時にサポートする優れたオプションはありません(ほとんどの言語には、両方をサポートするサーバーがあります)。

あなたは非PHPのオプションを検討して喜んでいる場合は、これらのプロジェクトは、Apacheに統合され、プロトコルの両方のリビジョンをサポートすることができます。

0

http://code.google.com/p/phpwebsocket/がお手伝いします。私は、あなたは、Apache/PHPでなく、あなたが実行する必要があり、スタンドアロンプ​​ログラム/サーバーとして実行され、何かを求めていると仮定デーモンを望んでいないことで

// Server side 
log("Handshaking..."); 
list($resource,$host,$origin) = getheaders($buffer); 
$upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" . 
     "Upgrade: WebSocket\r\n" . 
     "Connection: Upgrade\r\n" . 
     "WebSocket-Origin: " . $origin . "\r\n" . 
     "WebSocket-Location: ws://" . $host . $resource . "\r\n" . 
     "\r\n"; 
$handshake = true; 
socket_write($socket,$upgrade.chr(0),strlen($upgrade.chr(0))); 


// Client side 
var host = "ws://localhost:12345/websocket/server.php"; 
try{ 
    socket = new WebSocket(host); 
    log('WebSocket - status '+socket.readyState); 
    socket.onopen = function(msg){ log("Welcome - status "+this.readyState); }; 
    socket.onmessage = function(msg){ log("Received: "+msg.data); }; 
    socket.onclose = function(msg){ log("Disconnected - status "+this.readyState);  }; 
} 
catch(ex){ log(ex); } 
関連する問題