2011/11/28

WebSocket(1)

最近在研究WebSocket的東西

不過上網找了一些sample code都是無法正常運作

後來才了解原來WebSocket有分兩種protocol

1.draft-hixie-thewebsocketprotocol
2.draft-ietf-hybi-thewebsocketprotocol

第一種在2010/08/08已經過時了

現在主要以第二種為主

網路上的範例多是以hixie-75、hixie-76為主

而我目前的瀏覽器是chrome15.0.874.121 m採用hybi-10的protocol

難怪我找到的sample都無法正常跑

最後找到了

https://github.com/Worlize/WebSocket-Node (Node JS)

https://github.com/lemmingzshadow/php-websocket(PHP5.4)

這兩個chrome可以支援的server端

就開始研究囉


由於我的server是windows平台的

所以安裝nodejs的npm會有點麻煩

加上nodejs版更現在到了0.61

一些語法已改變

以WebSocket-Node這個project為例

他的express程式啟動是沒問題

不過卻不會有作用

所以我只好先把ejs部分(client端)先搬到apache上

修改一下註解掉第19行
/***********************************************************************/

// Enable us to simply require('websocket') from within the examples directory
//require.paths.unshift(__dirname + '/../../lib/');

var WebSocketServer = require('websocket').server;
var express = require('express');
var app = express.createServer();

(由於此篇在介紹websocket故nodejs設定不贅述)

>node whiteboard.js

伺服就啟動囉

開啟兩個瀏覽器果然一邊畫圖,另一邊也會跟著畫

速度還挺快的!!

後記:

我在公司與家裡server上的chrome開此範例都很正常

唯獨我的桌電上每次都需要等30秒timeout後圖才會出來

而且也會馬上與websocket server斷線

我就一直很納悶....上了plurk問了一下

神人學長說 可能是防毒軟體作祟

我查了一下

把chrome的主動模式關掉之後

果然一切都會復正常了

1 則留言:

  1. Bank Jobs 2020: This page of ours provides you with information about all upcoming and latest bank jobs opening 2020. This page helps all those who are looking for vacancies in the bank like every year. As you all know that every year there are hundreds of jobs in various positions in the banking sector. Currently, a large number of people are looking for a job in the bank as the sector is considered to be very good. In which your working hours are also fixed and salary is also good.

    回覆刪除