2011-03-04 28 views
8

Trong Smack API, có một lớp cấu hình cho kết nối, mô tả tại trang nàysự khác biệt giữa tên máy chủ XMPP và tên dịch vụ XMPP?

ConnectionConfiguration

Tôi đang bối rối về sự phân biệt giữa tên dịch vụ và tên máy chủ.

Giả sử tôi có một máy tính có tên "mybox.mydomain.com", và tôi có ejabberd vào nó với một loạt cấu hình gọi là "myhost" (sử dụng dòng {hosts, ["myhost"]}. trong ejabbed.cfg),

là những gì tên máy chủ, tên máy chủ và tên dịch vụ trong trường hợp này?

Trả lời

8
  • myhost: tên dịch vụ (hoặc XMPP miền)
  • mybox.mydomain.com: hostname và servername.

Bạn có thể lưu trữ miền XMPP trên bất kỳ máy chủ nào, miễn là bạn đặt bản ghi SRV ngay trong DNS hoặc nếu máy khách chỉ định máy chủ nào được kết nối (như email).

+1

để tên máy chủ và tên máy chủ luôn giống nhau? – Jus12

+1

Có, chúng là từ đồng nghĩa. – cstar

3

Hãy nghĩ về JID bạn đang sử dụng để đăng nhập, trong đó có username @domain. domain là tên hợp lý của dịch vụ bạn đang sử dụng. Đối với một số dịch vụ, như jabber.org, dịch vụ được chạy trên một hộp có cùng tên với dịch vụ. Đối với nhiều người khác, như WebEx Connect và GoogleTalk, miền dịch vụ là điểm bắt đầu để tìm ra nơi mở ổ cắm, nhưng không phải là tên của máy. Nếu mọi thứ được thiết lập đúng, bạn có thể tra cứu tên máy để kết nối vào DNS bằng cách sử dụng SRV record. Ví dụ: sử dụng dig:

$ dig +short -t SRV _xmpp-server._tcp.gmail.com 
20 0 5269 xmpp-server4.l.google.com. 
20 0 5269 xmpp-server2.l.google.com. 
20 0 5269 xmpp-server1.l.google.com. 
5 0 5269 xmpp-server.l.google.com. 
20 0 5269 xmpp-server3.l.google.com. 

Nếu miền dịch vụ không được định cấu hình chính xác trong DNS hoặc bạn chỉ cần thử nghiệm mọi thứ, thường hữu ích khi chỉ định máy chủ kết nối này riêng biệt với miền. Vì vậy, đối với ví dụ của bạn, bạn sẽ sử dụng:

ConnectionConfiguration("mybox.mydomain.com", 
         5222, 
         "myhost"); 

Nếu bạn muốn dịch vụ này được truy cập bởi những người bên ngoài mạng của bạn (từ máy khách đến máy chủ hoặc máy chủ đến máy chủ), sẽ có ý nghĩa để đổi tên miền dịch vụ của bạn thành một thứ gì đó đủ điều kiện, bạn có thể đính kèm bản ghi SRV cho các thực thể bên ngoài đó để sử dụng.