java websocket server:可以识别客户端



我想知道是否有可能区分连接到websocket服务器的客户端。在我的项目中,我必须能够从多个客户端发送消息,并将它们发送到特定的客户端。所以我的问题是:有没有一种方法可以识别不同的客户?我尝试在会话接口中使用getId()方法,但它对我的目的是无用的?

当您注册一个新的web_socket客户端时,您可以发送客户端信息,例如user_mail或简单的guid,例如:

HTML页面

var pagesessionid = generateGuid();
ws.connect('ws://' + window.location.host + window.location.pathname + 'ws?myclientparam=' + pagesessionid);
or
ws.connect('ws://' + window.location.host + window.location.pathname + 'ws?myclientparam=' + userid);
<<p> Servlet代码/strong>:
    public class BrowserWebSocket extends WebSocketServlet {
...
...
..
    @Override
    protected StreamInbound createWebSocketInbound(String string, HttpServletRequest hsr) {
        String myclientvalue= "";

        if (hsr.getParameter("myclientparam") != null) {
            myclientvalue= hsr.getParameter("myclientparam");
ClientWebSocket webSocket = new ClientWebSocket(myclientvalue);

web socket客户端类:

public class ClientWebSocket extends MessageInbound implements Serializable {
    public WsOutbound outbound;
    public String _myclient= "";
    public ClientWebSocket(String myclient) {
        _myclient= myclient;
    }

您可以使用myclient到客户端。

这里我使用tomcat websocket的标准servlet,但对于其他情况也是一样的

希望能有所帮助

相关内容

  • 没有找到相关文章