2017-04-09 70 views
0

クライアントサイドAPIのみに焦点を当てると(各サーバー側言語には独自のAPIがあるため)、次のスニペットは接続を開き、接続、切断、サーバーにメッセージを返し、WebSocketを使用して接続を閉じます。JavaScript - ReferenceError:WebSocketが定義されていません

// Create a socket instance 
var socket = new WebSocket('ws://localhost:3000'); 

// Open the socket 
socket.onopen = function(event) { 

    // Send an initial message 
    socket.send('I am the client and I\'m listening!'); 

    // Listen for messages 
    socket.onmessage = function(event) { 
     console.log('Client received a message',event); 
    }; 

    // Listen for socket closes 
    socket.onclose = function(event) { 
     console.log('Client notified socket has closed',event); 
    }; 

    // To close the socket.... 
    socket.close() 

}; 

しかし、私は、スニペットの上の実行時にエラーを取得しています:

ReferenceError: WebSocket is not defined

私はWebSocketをを実装する方法に、https://davidwalsh.name/websocketような様々なリンクを介して行っています。しかし、いずれもnpmパッケージを輸入していません。

質問: WebSocket(クライアント側AngularJS)の実装方法は?私はここで何が欠けていますか?

+1

を区別するためにどのようにクライアントが両面れます。 Serversideについては、[Socket.io](https://socket.io/)をお勧めします。これにはサンプルコードもあります。サーバーとクライアントの両方が – Templum

+0

に感謝@Templum。私はSocket.ioで簡単に作業しました 私はWebSocketsを学びたいと思います。 – kshikhar

+0

ブラウザでNodeJSではなくコードを実行していることを確認してください。それに対応する最新の[ブラウザ](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)も使用してください。 –

答えて

1

あなたの質問で参照しているコードは、クライアント側のコードです。 WebSocketはブラウザで直接利用できます。

Node.jsのサーバー側コードについては、ws NPM packageをご覧ください。

So, how to implement WebSockets (client side) on NodeJS?

あなたはしません。 Node.jsはクライアント側ではなくサーバー側です。

+0

彼は依然としてクライアントとして接続するためにそれを使用することができます。それには適切なモジュールが必要です。 –

+0

@OmriLuzon明らかに、それは言い方にもかかわらず、本当に質問ではありません。エラーメッセージは、要求者がサーバー上のNode.jsでクライアント側のコードを実行しようとしたことを明確に示しています。 – Brad

+0

あなたの答えは理にかなっています。だから私のことは愚かです。しかし、私がクライアント側(AngularJS)でそれを使用するなら、それをどのように動作させるのですか? @ブラッド – kshikhar

-1

あなたは試すことができます:

https://github.com/socketio/socket.io

@Bradは、あなたの質問に言及したと同じように、クライアントとサーバー

+1

Socket.IOはWebソケットに類似していません。これは、それ以上のものを提供するライブラリであり、必ずしもWebソケット転送ではありません。 – Brad

関連する問題