2016-03-06 69 views
0

我想创建一个应用程序,其中第3页的用户开始通过sockjs websocket进行通信(它们通过page1和page2到达第3页)。代码工作正常,但我不知道为什么!

在应用程序内部打开Sockjs

// Global scope 
var sock; 

// Inside a function page3, this is invoked when Page3 loads for the first time 
function page3(){ 
    // Local scope 
    sock= new SockJS("localhost:8080/messages); 
    sock.onopen= function(){ 
    .... 
    }; 

    sock.onmessage= function(data){ 
    .... 
    }; 
} 

我的问题是 - 当从服务器如何sock.onmessage通过执行程序访问,即使它“看到”仅在第3页装在第一时间这是当function page3()被称为发送的消息?

回答

0

找到我自己的答案。

该问题实际上与客户端上的事件侦听器的可见性有关。对此的答案是 - 客户端上的所有事件监听器一旦被激活(程序执行流程已“看到”它们)将保持活动状态,直到它们被移除。

因此,在上述情况下,即使function page3()被“看到”程序执行一次 - 当第3页被加载的第一次,sock.onmessage被激活作为page3()函数呼叫期间(客户端)事件侦听器,并继续保持直到套接字关闭。

因此,不需要明确的page3()函数调用来触发sock.onmessage。它(sock.onmessage)将继续监听服务器发送的套接字事件。

0

貌似sock没有进口(该错误消息说,这是什么未定义)

或许,如果你能分享更多的代码,我们可以看到为什么

相关问题