web-dev-qa-db-ja.com

ws:// localhost:8000 / socket / server / startDaemon.phpでサーバーへの接続を確立できません。 var socket = new WebSocket(Host);

私はjavascriptを使用してwebsocketに接続しています:

<script>
    var socket;  
    var Host = "ws://localhost:8000/socket/server/startDaemon.php";  
    var socket = new WebSocket(Host);  
</script>

エラーが発生しました:

のサーバーへの接続を確立できません

var Host = "ws://localhost:8000/socket/server/startDaemon.php";
var socket = new WebSocket(Host);

この問題を解決するにはどうすればよいですか?

注:Webソケットアプリケーションをサポートするために、mozillaでwebsocketを有効にしました。 chromeで実行すると、エラーが発生しました:

   can't establish a connection to the server at ws://localhost:8000/socket/server/startDaemon.php. var socket = new WebSocket(Host);
14

このリンクからコードをフォローすることでエラーを解決しました

http://www.flynsarmy.com/2010/05/php-web-socket-chat-application/ と、応答メッセージ用のsocketWebSocketTrigger.class.phpファイルを作成します。

class socketWebSocketTrigger
{   

        function responseMessage($param)
        {
            $a = 'Unknown parameter';

            if($param == 'age'){
                $a = "Oh dear, I'm 152";
            }

            if($param == 'hello'){
                $a = 'hello, how are you?';
            }

            if($param == 'name'){
                $a = 'my name is Mr. websocket';
            }

            if($param == 'today'){
                $a = date('Y-m-d');
            }

            if($param == 'hi'){
                $a = 'hi there';
            }

            return $a;

        }

}

'WebSocketServer.php'の送信関数に、リクエストメッセージを応答する 'responseMessage'関数を呼び出すためのコードを追加

 public function send($client, $msg){
        $this->say("> ".$msg);
        $messageRequest = json_decode($msg,true);

            // $action=$messageRequest[0];
            $action = 'responseMessage';
            $param  = $messageRequest[1]['data'];
        if( method_exists('socketWebSocketTrigger',$action) ){
                                $response = socketWebSocketTrigger::$action($param);
                            }
            $msg = json_encode(
                array(                      
                'message',
                    array('data' => $response)
                )
            );

            $msg = $this->wrap($msg);

        socket_write($client, $msg, strlen($msg));
    }

それは素晴らしい働きをしています。

3

どうやらfirefox 4は脆弱性のために無効にされたWebSocketsを持っています。この記事から引用するには:

WebSocketはFirefox 4で無効になっています

最近の発見により、Websocketが動作するプロトコルは攻撃に対して脆弱であることがわかりました。 Adam Barthは、ブラウザとインターネットの間にあるキャッシュを攻撃するために攻撃者が使用できるプロトコルに対するいくつかの深刻な攻撃を示しました。

5
Ibu

Firefoxでクライアントを実行しようとしていますか? ドキュメント によると:

2010年2月現在、WebSocketをサポートするブラウザはGoogle ChromeおよびWebkit Nightliesです。ここから入手してください http://www.google.com/chrome

Chrome=で実行してみて、うまくいくかどうかを確認してください。

1
King Skippus

まず最初にあなたの間違いは、javascript require_once 'WebSocket.php';と2番目に、以下のリンクのようにチュートリアルを実行します。

http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

正常に動作しています。

おかげで、

1
Sujeet