კონფიგურირეთ ის კავშირი, რომელიც რეალურად გადააქვს XMPP ნაკადს. პროქსის დაყენება უკავშირო URLConnection-ზე არ გადაამისამართებს Smack-ის TCP კავშირს შეტყობინებების სერვისზე.

Smack 4.4 გთავაზობთ ProxyInfo ქარხნებს HTTP, SOCKS4 და SOCKS5-ისთვის. მიუმაგრეთ მიღებული ობიექტი XMPP კავშირის ამგებს:

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();

ეს არის კონფიგურაციის ფრაგმენტი არსებული Smack 4.4 ინსტალაციისთვის. გარემომცველი აპლიკაცია ამუშავებს ამგების შემოწმებულ გამონაკლისებს და აწვდის პროქსის სერტიფიკატებს. მკაფიო ჰოსტი და პორტი წარმოადგენს XMPP სერვისის ფაქტობრივ TCP საბოლოო წერტილს.

არსებობს სამი სახელი სხვადასხვა როლით:

  • proxy.example.net არის შუამავალი, რომელიც იღებს საწყის კავშირს.
  • xmpp-node.example.net არის სერვერის საბოლოო წერტილი, რომელზეც პროქსის უნდა მიაღწიოს.
  • chat.example.net არის XMPP სერვისის დომენი, მაგალითად დომენი ანგარიშის JID-ში @-ის შემდეგ.

სერვისს შეუძლია გამოიყენოს იგივე სახელი ბოლო ორისთვის, მაგრამ პროქსის ჰოსტის სახელი არც ერთს არ ცვლის. შეინარჩუნეთ XMPP სერვისის განზრახული იდენტობა კავშირსა და მის TLS ვალიდაციაში.

HTTP პროქსისთვის გამოიყენეთ ProxyInfo.forHttpProxy შესაბამისი პროქსის პორტითა და სერტიფიკატებით. ეს გზა მოითხოვს პროქსის, რომელსაც შეუძლია XMPP კავშირის გვირაბირება და მისი დანიშნულების პორტის დაშვება. HTTPS ვებ-დათვალიერებისთვის განკუთვნილი პროქსი ავტომატურად არ უშვებს TCP კავშირებს XMPP სერვისთან 5222 პორტზე.

ფრაგმენტში მოცემული სავალდებულო უსაფრთხოების რეჟიმი TLS-ს XMPP კავშირის პირობად აქცევს. ის არ ასრულებს პროქსის აუთენტიფიკაციას და პროქსის სერტიფიკატები XMPP ანგარიშში არ შედის. მარშრუტისა და უსაფრთხო სესიის დამყარების შემდეგ დააკონფიგურირეთ XMPP ანგარიში Smack-ის ჩვეულებრივი აუთენტიფიკაციის ნაკადით.

შეინახეთ მაგალითები მათი API თაობის ფარგლებში. ძველი კონსტრუქტორზე დაფუძნებული ConnectionConfiguration მაგალითები იმავე მარშრუტიზაციის კონცეფციას გამოხატავს, თუმცა აქ გამოყენებული ინტერფეისი Smack 4.4-ის ამგებია. არ არის საჭირო მოძველებული შეტყობინებების პროვაიდერის ჰოსტების სახელების გამეორება, რომ ეს კონცეფცია მიმდინარე XMPP სერვისზე გამოიყენოთ.

დაკავშირებული სტატიები