2

プロキシを使用してクライアントのインターネット接続を制御するクライアントがいます。Websocketヘッダーのユーザー/パス認証値をプロキシに渡すにはどうすればよいですか。

標準のNetty埋め込みを使用しています。

public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    final String funcName = "messageReceived - ";
    try {
        Object msg = e.getMessage();
        logger.debug(funcName + msg + "class" + msg.getClass().getName());
        ThreadParams.setLoggingEnabled(true);
        if (msg instanceof HttpRequest) {
            handleHttpShakeHand(ctx, (HttpRequest) msg);
            // TaUtils.sleep(5000);
        } else if (msg instanceof WebSocketFrame) {
            handleWebSocketFrame(ctx, (WebSocketFrame) msg);
        }
    } catch (Throwable t) {
        logger.error(funcName + "error: ", t);
    }
}

private void handleHttpShakeHand(ChannelHandlerContext ctx, HttpRequest req) throws Exception {

// Handshake
WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(
        this.getWebSocketLocation(req), null, false);
this.handshaker = wsFactory.newHandshaker(req);
if (this.handshaker == null) {
    wsFactory.sendUnsupportedWebSocketVersionResponse(ctx.getChannel());
} else {
    this.handshaker.performOpeningHandshake(ctx.getChannel(), req);
}

return;

}

クライアントでは、Chromeのオブジェクトを使用してサーバーでWebsocketを開きます。

ws = new WebSocket(localStorage["wsPath"]);
    ws.onclose = onClose;
    ws.onopen = onOpen;
    ws.onerror = onError;

タミール

4

2 に答える 2

0

これはChromeの設定の問題だと思います。

Chrome でプロキシを使用するようにし、Chrome でユーザー名とパスワードを構成してみてください: http://googlechrometutorial.com/google-chrome-advanced-settings/Google-chrome-proxy-settings.html

于 2012-07-20T01:41:48.560 に答える
0

現在の解決策は、SSL 証明書を使用してプロキシと識別し、Web ソケット認証をバイパスすることです。これは、クリア テキスト ソリューションに関する未解決の問題です。

于 2012-07-26T16:04:08.957 に答える