2014-01-09 76 views
6

當CF8給我們帶來了ajax支持時,<cfajaxproxy>和各種<cfform>標籤使得CF的真正簡單,但調用cfc?method=也可能與任何JS庫,並可以擺脫包括來自Adobe的這些可怕的JavaScript。可以在沒有生成JavaScript混亂的情況下使用cfwebsocket嗎?

現在CF10給我們帶來了websocket的支持,但是<cfwebsocket>是唯一使用websocket加CF的方法嗎?

+1

快速谷歌搜索變成了這樣:https://github.com/nmische/cf-websocket-gateway/wiki這似乎是使用在早期版本的ColdFusion的WebSockets以及一種方式。 –

回答

1

亨利,還有很多其他的方式來使用websockets,因爲CF包括一個相當強大的網關服務。自CF 7以來一直存在。

在我的CF 9服務器上,我使用了Scott在鏈接中指出的Nate Mische的產品。我添加了網關類型,然後添加了一個實例。我從我的內部跟蹤系統向我的實例發送事件,我跟蹤了我的許多顧問的日誌時間。然後我構建了一個儀表板,其中包含實時圖表加上小時,備註和原始SVN評論更新。它讓我對工作日期間公司發生的事情有一個生動的描述。點擊圖表的餅圖部分可以使用套接字調出附加的圖表數據。例如,單擊客戶端的餅圖段可以爲該客戶端每日點燃一小時。 Ajax調用的速度要快得多(通常)。我使用名爲「Rgraph」的客戶端圖表庫作爲視覺效果。

看起來像這樣。

dashboard

下在客戶端代碼中的油煙機是你所期望的。請注意,這些示例不是完整的故事 - 您的實現將是唯一的。

<script> 

var reconnectTimer = 0; 
var userID = '1'; 
var socketDomain = 'ws://*my system url*.com:1225'; 
// Firefox is a little different. 
if (window.MozWebSocket) { 
    window.WebSocket = window.MozWebSocket; 
} 

... 
</script> 

我打開一個連接(conn是變量),然後有該解析出每種消息類型(消息arive爲JSON - 但是它們可以是任何種類的字符串)的的onMessage()函數。

conn.onmessage = function (event) { 

     var message = event.data; 
      console.log(event.data); 
     var t = JSON.parse(event.data); 

     if(t.TYPE != 'Blah') 
        do A B or C 
.... 

它不是那麼整齊地打包到cfwebsocket,我懷疑插座的服務器可能是不同的系統上脆弱的 - 說的是有一個非常沉重的負擔像股票一樣交易應用。但它對於它的任務如何很有效。我希望這有幫助!

馬克

+0

很高興知道,只是這不是這個Q所要找的。謝謝馬克! – Henry

+0

「Cfwebsocket是使用帶CF的websocket的唯一方式」......不,它不是。見上面的答案。 :) –

+0

也許我應該把它寫成「是''使用CF10的websocket的唯一方法?」我真的很喜歡你的解決方案,那麼我可以繞過CF10標準版中的100個連接限制。 – Henry

相關問題