2017-08-08 13 views
1

サーバーがデータを「送信する」ときとクライアントがデータを取得するときを理解するのは苦労します。socket.ioのサーバーとクライアントの違い "on"と "emmit"

コードを使用すると、index.js上で見ることができるよう

$(function(){ 
    'use strict'; 
    // client side 
    console.log("starting chat..."); 
    var socket = io(); 


    $('form').submit(function(){ 
    // call event chat message 
    socket.emit('chat message', $('#m').val()); 
    $('#m').val(''); 
    return false; 
    }); 

    // create chat message event on client 
    socket.on('chat message', function(msg){ 
    $('#messages').append($('<li>').text(msg)); 
    }) 
}); 

それはchat messageを作成し、それioの使用nodejs

// server side 
var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

io.on('connection', function(socket){ 
    console.log('a user connected'); 

    // create chat message 
    socket.on('chat message', function(msg){ 
    io.emit('chat message', msg); 
    console.log('message: ' + msg); 
    }); 

    socket.on('disconnect', function(){ 
    console.log('user disconnected'); 
    }); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

ために、スクリプトでindex.jsにその例

でありますemmitです。同じことがスクリプトにあります。だから問題は、サーバーとクライアントが互いにどのように話し合うのかということです。 emmitonの違いは何ですか?

+0

'emit'はメッセージを送ります、' on'はイベントを受け取ります、それは明白ではありませんか? – Bergi

+0

サーバーとクライアントが一般的にどのように機能し、どのようなソケットがあるのか​​知っていますか? – Bergi

+0

私は(サーバーとクライアント)、ソケットではそうではありませんが、私は彼らが両方ともイベント "新しいメッセージ"を使用しているのを見ることができるので、どう対話しているのか分かりません。 –

答えて

1

我々はソケットIOを使用しているときはいつでも、私たちはを使用するには、その後、我々はにそのを使用し、Xを言う与えられたメッセージ識別子とサーバとのメッセージが今、いくつかのメッセージ識別子とメッセージを発することによって、クライアントを返信サーバーを送信するためにを発しますメソッドを呼び出し、xの識別子を渡し、サーバーからメッセージを取得します。

関連する問題