我在Coldfusion中使用cfwebsocket标记来创建Web套接字连接。 我从这里看了一个例子http://www.sagarganatra.com/2012/03/html5-websockets-in-coldfusion-10.html 接近结束时,它会显示您可以在Web套接字对象上进行的所有javascript调用。 但是,当我尝试对其进行任何调用时,我得到一个未定义的错误。 例如,我有:
<cfwebsocket name="ws" onMessage="messageHandler" onOpen="openHandler" onClose="closeHandler" onError="errorHandler" subscribeTo="chat" />
并在我的javascript中调用
alert(ws.isConnectionOpen());
我在firebug中得到错误:TypeError:ws未定义。
任何人都知道为什么我不能打电话给它? 我的聊天工作正常,我可以正常连接和聊天。我只是想在聊天结束时关闭连接,所以我正在研究如何调用websocket,但我不知道它为什么不能正常工作。
请注意,我使用的是jQuery,并且javascript已包含在文档中。
答案 0 :(得分:1)
首先,在与服务器建立连接之前,您无法与ws对象进行交互。
有几种方法可以处理这种情况。您可以使用“onOpen”属性,并在建立Web套接字连接后调用函数。
但是,您最好只使用“onMessage”属性并创建一个通用侦听器函数来处理来自服务器的所有Web套接字消息。
function messageHandler(msg) {
if (msg.type == 'response' && msg.reqType == 'welcome'){
alert('user connected');
}
}