Primefaces Push - <p:socket>客户端小部件</p:socket>中的方法是什么?

时间:2014-01-21 09:03:57

标签: sockets jsf primefaces atmosphere


任何人都可以指向包含<p:socket/>客户端小部件的任何api链接吗?

完成push showcase我只能看到connect方法 requestContext.execute("subscriber.connect('/" + username + "')"); 还有什么其他方法。是否有任何断开方法。?

此外,如何为每个用户创建单独的频道(如果是聊天应用程序)。我估计,这个<p:socket onMessage="handleMessage" channel="/chat/#{userSession.userId}" autoConnect="false" widgetVar="subscriber"/>会做到这一点,但显然它不是,至少对我来说。因为通过查看Chrome开发者控制台,我可以看到每次刷新页面时都会附加频道名称(/ chat / userid / userid ...)。

任何指针都非常感谢。!!!

1 个答案:

答案 0 :(得分:2)

我想我得到了一些我正面临的问题的答案。

  1. 对于push小部件中的方法,push.js是要查找的文件。
  2. 附加问题是因为调用

    requestContext.execute("subscriber.connect('/" + username + "')");

    多次。调用下面的代码会导致多次附加通道名称。

    connect: function (a) {if (a) {
        this.cfg.request.url += a  // <----
    }
    this.connection = $.atmosphere.subscribe(this.cfg.request)
    
  3. PF 4.0中提供了断开连接方法。或者您可以将以下代码添加到push.js。

     disconnect: function () {  
         this.connection.close()
     }