可以在没有生成的JavaScript混乱的情况下使用cfwebsocket吗?

时间:2014-01-09 08:56:28

标签: coldfusion coldfusion-10 cfwebsocket

当CF8为我们提供ajax支持时,<cfajaxproxy>和各种<cfform>标签使得ajax与CF非常容易,但是任何JS lib都可以调用cfc?method=,并且可以逃脱包括来自Adobe的那些可怕的JavaScript。

既然CF10给我们带来了websocket支持,但<cfwebsocket>是使用websocket和CF的唯一方法吗?

1 个答案:

答案 0 :(得分:1)

Henry,还有很多其他方法可以使用websockets,因为CF包含了一个相当强大的网关服务。自CF 7以来一直存在。

在我的CF 9服务器上,我使用了Nate Mische的产品,Scott在他的链接中指出。我添加了网关类型,然后添加了一个实例。我从我的内部跟踪系统向我的实例发送事件,我跟踪了许多顾问的记录时间。然后我构建了一个仪表板,其中包括实时图表加上小时,笔记和原始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是var),然后有一个onMessage()函数解析每个消息类型(消息作为json发送 - 但它们可以是任何类型的字符串)。

 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那样整齐地打包,我怀疑套接字服务器可能在另一个系统上很脆弱 - 比如一个像股票交易应用程序那样负载很重的系统。但它适用于它的任务。我希望这有帮助!

-Mark