我很难理解服务器"发送"数据以及客户" get"数据,反之亦然。
代码在他们的例子中
在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
并使用它{i} emmit
。脚本中也有同样的事情。所以问题是服务器和客户端如何对话&#34;彼此?以及emmit
和on
之间有什么不同?
答案 0 :(得分:1)
每当我们使用socket io时,我们使用 emit 向服务器发送带有给定消息标识符的消息,服务器现在通过发送带有一些消息标识符的消息来回复客户端 x ,然后我们使用 on 方法并传递 x 标识符并从服务器获取消息。