Primefaces 推送私人频道错误 room/user/user/user/

Primefaces Push Private Channel wrong room/user/user/user/

当我测试 primefaces(5.2) 推送示例(计数器、通知、照片共享)时,除了聊天(same code from page primefaces,复制粘贴示例页面中的代码)之外,所有的工作都完全正常,这里出现了一个细节:

  1. 用户名:"felipe" 登录(私信工作)

private channel = /pushmob/primepush/{room}/felipe

  1. 用户名:"felipe" 注销

  2. 用户名:"felipe"登录(私信无效)

private channel = /pushmob/primepush/{room}/felipe/felipe

其他用户登录无法给felipe发送私信。

为了检测到私人频道,我在控制台中使用 PF('subscriber').cfg.request.url

有什么想法吗???

PrimeFaces 5.2

氛围 2.3.4

来自聊天示例的相同代码。

web.xml

<servlet>
    <servlet-name>Push Servlet</servlet-name>
    <servlet-class>org.primefaces.push.PushServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

<servlet-mapping>
    <servlet-name>Push Servlet</servlet-name>
    <url-pattern>/primepush/*</url-pattern>
</servlet-mapping>

index.xhtml

<p:socket onMessage="handleMessageChat" channel="/{room}"
            autoConnect="false" widgetVar='subscriber' />

chatview.xhtml

public class ChatView implements Serializable {

private final static String CHANNEL = "/{room}/";

public void sendGlobal() {
    eventBus.publish(CHANNEL + "*", username + ": " + globalMessage);

    globalMessage = null;
}

public void sendPrivate() {
    eventBus.publish(CHANNEL + privateUser, "[PM "+ username + "] " + username + ": "
            + privateMessage);
    eventBus.publish(CHANNEL + username, "[PM " + privateUser + "] " + username + ": "
            + privateMessage);
    privateMessage = null;
}

public void login() {
    RequestContext requestContext = RequestContext.getCurrentInstance();

    if(users.contains(username)) {
        loggedIn = false;
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Username taken", "Try with another username."));
        requestContext.update("growl");
    }
    else {
        users.add(username);
        requestContext.execute("PF('subscriber').connect('/" + username + "')");
        loggedIn = true;
    }
}

public void disconnect() {
    //remove user and update ui
    users.remove(username);
    RequestContext.getCurrentInstance().update("form:users");

    //push leave information
    eventBus.publish(CHANNEL + "*", username + " left the channel.");

    //reset state
    loggedIn = false;
    username = null;
}

} }

已解决...我必须创建两个页面,一个用于登录,另一个用于聊天,以便成功使用私人频道。