1. 程式人生 > >基於Html5 websocket和Python的線上聊天室

基於Html5 websocket和Python的線上聊天室

握手協議:request中有三個隨機的key值,頭部有兩個,後面body裡是長度為8位元組的key3(括號裡的文字是提示,還有字元間的冒號也是為了看上去清晰才加上的,真正傳輸是沒有的),以此向server傳送一個challenge,server需要根據這三個key計算出一個token,在響應中發回給client,以證明自己對request的正常解讀。計算方法是這樣的:對於key1,抽取其中的數字字元,形成一個整數num,然後除以他自身的空格數spaces,保留整數部分i1; key2如法炮製,得到i2,把i1和i2按照big-endian字元序連線起來,然後再與key3連線,得到一個初始的序列,對這個序列使用md5計算出一個16位元組長的摘要,就是所需的token。另外值得注意的是Origin頭部,意味著Websocket是支援cross origin的。