是一个阻止ajax请求的开放Web套接字连接?

时间:2013-07-14 15:31:56

标签: javascript ajax jquery websocket

只是一个快速的问题,一般的理解。可能是,一个开放的Web套接字连接阻止了ajax请求?因为在web套接字连接初始化之前的ajax请求工作得很好,并且在我建立了Web套接字连接之后没有任何事情发生。

$.ajax({
   url: someUrl
}).done(function(data) {
    // stuff done and calling initWebSocket()
}).error(function(data) {
  // error stuff done
});

function initWebSocket() { 

    hostname = 'somehost';

    ws = new WebSocket('ws://' + hostname + ':' + wsPort);

    ws.onopen = function() {

    console.log('Connected');

    ws.send(initMessage);
}

ws.onmessage = function(msg) {

// do stuff on message received

}

ws.onclose = function() {
console.log('Disconnected');
}

}

$('#someButton').click(function(event) {

event.preventDefault();

$.ajax({
url: someUrl
}).done(function(data) {
console.log(data);
}).error(function(data) {
console.log(data);
});

});

正如前面提到的第一个ajax请求有效,第二个是我点击按钮时没有。有关于此主题的任何人信息,以及Web套接字是否真的阻止ajax请求将使其运行的解决方法是什么?感谢。

1 个答案:

答案 0 :(得分:0)

调用应该是异步的,但也许连接失败了。尝试为websocket添加一个onerror处理程序,看看会发生什么。

ws.onerror = function(){ console.log(evt.data); }

此外,如果您可以创建一个JSFiddle或包含HTML,那么按钮事件处理程序可能是错误的,它根本与websocket代码无关。