无法在Javascript中调用websocket对象



我使用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 is undefined.

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

请注意,我使用的是jQuery, javascript已经包装在文档中了。

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

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

然而,你可能最好只是使用"onMessage"属性并创建一个通用的监听器函数来处理来自服务器的所有web套接字消息。

function messageHandler(msg) {
    if (msg.type == 'response' && msg.reqType == 'welcome'){
        alert('user connected');
    }       
}

相关内容

  • 没有找到相关文章

最新更新