1

我在 Coldfusion 中使用 cfwebsocket 标记来创建 Web 套接字连接。我从这里查看了一个示例http://www.sagarganatra.com/2012/03/html5-websockets-in-coldfusion-10.html 并在接近尾声时向您展示了您可以在网络套接字上进行的所有 javascript 调用目的。但是,当我尝试对其进行任何调用时,我收到一个未定义的错误。例如我有:

<cfwebsocket name="ws" onMessage="messageHandler" onOpen="openHandler" onClose="closeHandler" onError="errorHandler" subscribeTo="chat" />

在我的javascript中我调用

alert(ws.isConnectionOpen());

我在萤火虫中得到错误:TypeError:ws未定义。

有人知道为什么我不能打电话吗?我的聊天工作正常,我可以正常连接和聊天。我只是想在聊天结束时关闭连接,所以我正在研究它是如何调用 websocket 的,但我不知道为什么它不起作用。

请注意,我使用的是 jQuery,并且 javascript 已包装在准备好的文档中。

4

1 回答 1

1

首先,在它与服务器建立连接之前,您不能与 ws 对象进行交互。

有几种方法可以处理这种情况。您可以使用“onOpen”属性并在建立 Web 套接字连接后让它调用一个函数。

但是,您最好只使用“onMessage”属性并创建一个通用侦听器函数来处理来自服务器的所有 Web 套接字消息。

function messageHandler(msg) {

    if (msg.type == 'response' && msg.reqType == 'welcome'){

        alert('user connected');
    }       
}
于 2013-08-05T03:10:18.430 回答