首页 > 代码库 > soket.io源码分析(1):

soket.io源码分析(1):

我猜想这个就是源码吧,有index.js还有其他js文件的。

技术分享

 node-modules模块

技术分享

socket.js

1.模块依赖

var Emitter = require(‘events‘).EventEmitter;
var parser = require(‘socket.io-parser‘);
var url = require(‘url‘);
var debug = require(‘debug‘)(‘socket.io:socket‘);
var assign = require(‘object-assign‘);

2.黑名单事件
说是public的。
exports.events = [
‘error‘,
‘connect‘,
‘disconnect‘,
‘disconnecting‘,
‘newListener‘,
‘removeListener‘
];
用来干什么的?
3.private是私有的
var flags = [
‘json‘,
‘volatile‘,
‘broadcast‘
];
4.获得emit方法的引用。emit是调用监听器函数,如果事件被出发。
var emit = Emitter.prototype.emit;
5.原型定义属性
function Socket(nsp, client, query){
6.那么使用了EventEmitter的原型咯。那么_proto_属性就继承了对应的方法。
Socket.prototype.__proto__ = Emitter.prototype;

技术分享

7.Object.defineProperty定义一个属性并返回对象。

/**
* Apply flags from `Socket`.
*/

flags.forEach(function(flag){
Object.defineProperty(Socket.prototype, flag, {
get: function() {
this.flags[flag] = true;
return this;
}
});
});
8.buildHandShake
9.emit
10.to/in
11.send/write
12.packet
13.leave
14.leaveAll
15.onconnect
16.onpacket
17.onevent
18.ack,onack
19.ondisconnect
20.onerror
21.onclose
22.error
23.disconnect
24.compress
25.dispatch
26.use
27.run。

 

soket.io源码分析(1):