Socket.io握手和验证流程

Socket.io 支持两种方式的认证:

  1. 在初始化或者对话握手的时候进行全局的验证。
  2. 每个namespace下进行独立认证。

全局认证和namespace层的独立认证可以同时使用或者单独使用其中某一个。他们唯一的共同点是通用 handshakeData这个对象。 这个数据通过握手时发送的数据生成。所以如果想更好的了解怎么使用认证,首先要先理解握手过程。

握手

当客户端想和Socket.io服务器建立一个稳定的实时连接的时候,需要首先进行握手过程。握手过程通过一个XHR请求或者JSONP(跨域请求)请求进行初始化。

服务器收到连接请求时便会收集请求数据以便后来可能使用。这么做有两个原因:

  1. 用户可能想根据客户端的头信息(headers)或者IP地址进行认证。
  2. 不是所有的传输协议在与服务器建力实时连接的时候会发送头信息,所以我们内部的将握手信息存起来,确保用户在连接建立以后还可以使用这些数据。比如:你可能想在cookie headers里面读取session id,或者为一个连接初始化Express session

handshakeData对象包含以下信息:

1
2
3
4
5
6
7
8
9
10
{
headers: req.headers, // <Object> 请求的头信息
time: (new Date) +'', // <String> 连接的时间信息
address: socket.address(), // <Object> 远程的IP和端口对象
xdomain: !!headers.origin, // <Boolean> 是否是跨域请求
secure: socket.secure, // <Boolean> 是否是https加密协议
issued: +date, // <Number> 连接建立时的时间戳
url: request.url, // <String> 请求入口地址
query: data.query // <Object> URL参数对象(url.parse().query 的结果)或者空对象
}

address对象请参照 socket.address()

Read More

蛋疼时候的碎碎念

我不愿让你一个人,从大三唱到如今毕业一年。也始终未曾遇到那位和我一起去听五月天演唱会的人。我听五月天,也听E神。E神1874里唱 “仍然没有遇到那位和我绝配的恋人 你根本也没有出现,还是已然逝去”像是最能说明的吧。

正因为五月天,所以我不想让青春如此荒凉谢幕。 我从不怕爱错就怕没爱过。
如果没有一个人一起去听过五月天,青春是少了多鲜艳的一抹亮色。

盛夏正要一天一天的过完,6.11石家庄听完,8月17也马上过去。听过这场,如果再不曾遇到那么一位,我便不会再去演唱会了把。人生啊,总有些事儿是不能完美,总有些事留在那里成为遗憾。

理想中的她应该是个吃货,懂得吃才会生活。 听五月天E神爱吃辣~ 哈哈
别看上面写的那么文绉绉,我真不是文艺青年。。范儿青年才是真身。所以。。她也不能是文艺青年,不然讲个冷笑话她都能当成古诗文 = = ! 而且自古文艺青年忧伤多。。我喜欢笑起来没心没肺还能保持八颗牙齿的 哈哈~

===== 仅以此文纪念我那点无处释放的寂寞悲伤把 =====

Git协作流程规范

平时在使用Git时候,如果有冲突,就需要一次合并提交, 导致整个git 主线很乱,而且经常的合并比较容易出现问题。 这样是 non fast-forward 合并。

可以看下这边文章,这篇文章是我们现在用的方法:

解决合并的冲突 - non fast-forward合并

我们要改为用 rebase 进行合并, 这样就可以是 fast-forward 合并了,请查看这边文章

rebase 合并的冲突 - fast-forward合并

具体的流程如下

1.去自己的工作分支

1
$ git checkout work

然后开始工作,开发功能修复BUG
….

Read More

jQuery插件开发入门

插件方法级别

1.创建类级别的方法

调用方法为 $.PluginName(), 像 $.ajax, $.each 都是类级别的
示例:

1
jQuery.PluginName = function(){..........}

这种做法实际上是对jQuery类进行了扩展,所以也可以写为

1
2
3
$.extend($,{
PluginName:function(){.....}
})

2.创建对象级别的方法

调用方法为 $("Selector").PluginName();

示例:

1
$.fn.PluginName = function(){.........}

即对fn对象进行了扩展,等同于:

1
2
3
$.extend($.fn,{
PluginName:function(){......}
})

Read More

You've got to find what you love

You’ve got to find what you love.
Keep looking. Don’t settle
—–Steve Jobs

11月11,末日还未来临,第22个光棍节。

还记的上年这时候说,下年不能再过这节,(貌似前年也是 – -),月老不给力啊··

本着许三多不抛弃不放弃,忠于爱情忠于党的信念,终于母猪赛貂蝉了!

内心的完美主义教导我,宁可寂寞开成海,不吃不是我的菜。

我得和她去看五月天的演唱会···努力啦,骚年

再说一遍:下年不能再过这节!

Read More