Hen*_*nry 6 coldfusion coldfusion-10 cfwebsocket
当CF8给我们带来ajax支持,<cfajaxproxy>并且各种<cfform>标签使得ajax与CF真的很容易,但是cfc?method=任何JS lib也可以调用,并且可以逃脱包括来自Adobe的那些可怕的JavaScript.
既然CF10给我们带来了websocket支持,但是<cfwebsocket>使用websocket和CF的唯一方法是什么?
Henry,还有许多其他方法可以使用 websocket,因为 CF 包含相当强大的网关服务。从CF 7开始就一直存在。
在我的 CF 9 服务器上,我使用 Scott 在他的链接中指出的 Nate Mische 的产品。我添加了网关类型,然后添加了一个实例。我从内部跟踪系统将事件发送到我的实例,在该系统中我跟踪了许多顾问的记录时间。然后我构建了一个仪表板,其中包括实时图表以及小时数、注释和原始 SVN 评论更新。它让我对工作日期间公司发生的事情有一个生动的了解。单击图表的饼图部分会使用套接字显示其他图表数据。例如,点击客户的饼图部分会显示该客户每天的工作时间消耗情况。(通常)Ajax 调用要快得多。我使用名为“Rgraph”的客户端图表库来显示视觉效果。
看起来像这样。

在客户端的引擎盖下,代码就是您所期望的。请注意,这些示例并不是完整的故事 - 您的实现将是独一无二的。
<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>
Run Code Online (Sandbox Code Playgroud)
我打开一个连接(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
....
Run Code Online (Sandbox Code Playgroud)
它不像 cfwebsocket 那样整齐地打包,而且我怀疑套接字服务器在不同的系统上可能很脆弱 - 比如说像股票交易应用程序这样负载非常重的系统。但它对于它的任务分配方式来说效果很好。我希望这有帮助!
-标记