Javascript 差异“;关于;及;“艾米特”;在socket.io中的服务器和客户端中
我很难理解服务器何时“发送”数据,客户端何时“获取”数据,反之亦然 代码在他们的示例中 在nodejs的Javascript 差异“;关于;及;“艾米特”;在socket.io中的服务器和客户端中,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我很难理解服务器何时“发送”数据,客户端何时“获取”数据,反之亦然 代码在他们的示例中 在nodejs的index.js中 // 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 + '/i
index.js
中
// 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));
})
});
$(函数(){
"严格使用",;
//客户端
log(“开始聊天…”);
var socket=io();
$('form')。提交(函数(){
//呼叫事件聊天信息
emit('chat message',$('#m').val());
$('m').val('');
返回false;
});
//在客户端上创建聊天消息事件
socket.on('chat message',函数(msg){
$(“#消息”).append($(“”).text(msg));
})
});
正如您在
index.js
上看到的,它创建了一条聊天信息
,并使用io itemmit
it。脚本中也有同样的内容。所以问题是服务器和客户端如何相互“交谈”?而emmit
和上的有什么不同呢?每当我们使用套接字io时,我们使用emit向服务器发送具有给定消息标识符的消息,服务器现在通过发送具有消息标识符的消息(如x)来回复客户端,然后我们使用on方法,传递x标识符并从服务器获取消息。emit
发送消息,on
接收事件,不是很明显吗?您知道服务器和客户端通常是如何工作的,以及套接字是什么吗?我知道(服务器和客户端),但在套接字中不是这样,我不明白他们是怎么说话的,正如你们看到的,他们都在使用事件“新消息”,为什么他们彼此不冲突?这是对称的。客户端发送的消息在服务器上接收,服务器发送的消息在客户端上接收。它们没有冲突,因为它们有一个方向。那么像POST或GET一样,服务器渲染结果吗?但同时发生?