2016-09-14 10 views
1

私はNode.jsとsocket.ioを使い慣れています。socket.ioのsocket変数とは何か

私はsocket.ioの公式サイトにアクセスし、チュートリアルを試してください。 http://socket.io/get-started/chat/

私のコンピュータで正しく動作します。しかし、私はそのコードの本質を全く理解できません。

質問:以下のコードでは「ソケット変数」とは何ですか?そしてどこから来たの?

io.on('connection', function(socket){ 
    socket.on('chat message', function(msg){ 
    io.emit('chat message', msg); 
    }); 
}); 

多分 "msg variable"はString型の変数です。それはクライアント側からのものですよね?

答えて

1

socket変数は基本的にクライアントへのソケットです。 io.on('conection')は、新しいクライアントが接続して購読するソケットを与えるたびに呼び出されます。

socket.on('chat message'は、そのソケットインスタンスに関連付けられたクライアントによって送信されたイベントでサブスクライブします。説明ここ

は、あなたのプログラムのさまざまな部分である:

io.on('connection', function(socket){ // Waiting for new clients to connect, then return a socket instance 
// msg can be any javascript object like a string or array ect. 
    socket.on('chat message', function(msg){ // Subscribe on event 'chat message' will be called when client do io.emit 
    io.emit('chat message', msg); // Server send to clients 
    }); 
}); 
+0

は、私たちは、文字列、配列のようなオブジェクトのさまざまなタイプを送ることができます理解し、アドバイスをいただき、ありがとうございます。 しかし、私はこの文を理解できません。 "ソケット変数は基本的にクライアントへのソケットです" ソケットとはクライアントIDのようなものか、クライアントとサーバーの間の接続ですか?私はその言葉をGoogleに語りますが、ほとんどのWebページはWebsocketプロトコルまたはソケットについて説明します。 io。 –

0

変数msgの型は、文字列ではなく、「チャットメッセージ」イベントで発生したものとよく似ています。あなただけの文字列を放出する必要はありません、あなたもオブジェクトを放出することができます。例の文脈では、はい。これはクライアント側からのものです。

可変ソケットですが、ソケットはクライアントとサーバーの間の接続です。サーバがその接続から、またはむしろ「ソケット」から「チャットメッセージ」イベントを受信すると、サーバは、それが有するすべてのソケット上で「チャットメッセージ」イベントを発する。サーバがそれに接続されているすべてのソケットに送信する 'チャットメッセージ'イベントのコンテンツは、チャットメッセージを送信したクライアントが最初にサーバに送信した 'チャットメッセージ'イベントのコンテンツと同じです。

関連する問題