差“上”和“emmit”在服务器端和客户端socket.io
问题描述:
我很难理解当服务器“发送”的数据,并在客户端“获得”数据,反之亦然。差“上”和“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
之间的区别是什么?
答
每当我们使用插座IO,我们使用发射发送服务器的消息与给定的消息识别符和服务器现在通过一些消息标识符发射的消息回复客户说X,那么我们使用上方法并传递X标识符和从服务器抓住消息。
'emit'发送消息时,'on'接收事件时,不是很明显? – Bergi
您是否知道服务器和客户端通常如何工作以及套接字是什么? – Bergi
怎么办?(服务器和客户端),但并非如此插座,我不明白他们是怎么说话,你可以看到他们使用事件“新邮件”这两个,为什么他们不互相冲突? –