1
我很難理解當服務器「發送」的數據,並在客戶端「獲得」數據,反之亦然。差「上」和「emmit」在服務器端和客戶端socket.io
的代碼是他們的榜樣
在index.js
爲的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');
});
,並在腳本
$(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));
})
});
,你可以在index.js
看到它創建一個chat message
,並通過io它emmit
它。腳本中也一樣。所以問題是服務器和客戶端如何「互相交談」?以及emmit
和on
之間的區別是什麼?
'emit'發送消息時,'on'接收事件時,不是很明顯? – Bergi
您是否知道服務器和客戶端通常如何工作以及套接字是什麼? – Bergi
怎麼辦?(服務器和客戶端),但並非如此插座,我不明白他們是怎麼說話,你可以看到他們使用事件「新郵件」這兩個,爲什麼他們不互相沖突? –