XMPP akışını gerçekten taşıyan bağlantıyı yapılandırın. İlgisiz bir URLConnection üzerinde proxy ayarlamak, Smack'in TCP bağlantısını mesajlaşma hizmetine yönlendirmez.

Smack 4.4, HTTP, SOCKS4 ve SOCKS5 için ProxyInfo fabrikaları sağlar. Elde edilen nesneyi XMPP bağlantı oluşturucusuna ekleyin:

import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.proxy.ProxyInfo;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;

ProxyInfo proxy = ProxyInfo.forSocks5Proxy(
    "proxy.example.net", 1080, proxyUser, proxyPassword
);

XMPPTCPConnectionConfiguration config =
    XMPPTCPConnectionConfiguration.builder()
        .setXmppDomain("chat.example.net")
        .setHost("xmpp-node.example.net")
        .setPort(5222)
        .setProxyInfo(proxy)
        .setSecurityMode(
            ConnectionConfiguration.SecurityMode.required
        )
        .build();

Bu, mevcut bir Smack 4.4 kurulumu için bir yapılandırma parçasıdır. Çevreleyen uygulama, oluşturucunun denetlenen istisnalarını işler ve proxy kimlik bilgilerini sağlar. Açıkça belirtilen ana bilgisayar ve bağlantı noktası, XMPP hizmetinin gerçek TCP uç noktasını temsil eder.

Farklı rollere sahip üç ad vardır:

  • proxy.example.net ilk bağlantıyı alan aracıdır.
  • xmpp-node.example.net proxy'nin ulaşması istenen sunucu uç noktasıdır.
  • chat.example.net XMPP hizmet alanıdır; örneğin bir hesabın JID'sinde @ sonrasındaki alan.

Bir hizmet son ikisi için aynı adı kullanabilir, ancak bir proxy ana bilgisayar adı ikisinin yerini de almaz. Amaçlanan XMPP hizmet kimliğini bağlantıda ve TLS doğrulamasında koruyun.

HTTP proxy için uygun proxy bağlantı noktası ve kimlik bilgileriyle ProxyInfo.forHttpProxy kullanın. Bu yol, XMPP bağlantısını tünelleme ve hedef bağlantı noktasına izin verme yeteneğine sahip bir proxy gerektirir. HTTPS web taramasını yürüten bir proxy, 5222'deki bir XMPP hizmetine TCP bağlantılarına otomatik olarak izin vermez.

Parçadaki zorunlu güvenlik modu, TLS'yi XMPP bağlantısının koşulu yapar. Proxy kimlik doğrulaması yapmaz ve proxy kimlik bilgileri bir XMPP hesabına giriş yapmaz. Rota ve güvenli oturum kurulduktan sonra XMPP hesabını Smack'in normal kimlik doğrulama akışıyla yapılandırın.

Örnekleri kendi API nesilleri içinde tutun. Eski oluşturucu tabanlı ConnectionConfiguration örnekleri aynı yönlendirme kavramını ifade eder, ancak burada kullanılan arabirim Smack 4.4 oluşturucusudur. Bu kavramı güncel bir XMPP hizmetine uygulamak için kullanımdan kalkmış bir mesajlaşma sağlayıcısının ana bilgisayar adlarını yeniden üretmeye gerek yoktur.

İlgili makaleler