2013-11-01 17 views
10

tôi sẽ bắt đầu một dự án mới. Trong dự án này tôi có một máy chủ và nhiều khách hàng (trên 100000). Khách hàng và máy chủ liên tục sẽ liên lạc với nhau. Họ chỉ sử dụng tin nhắn văn bản. Tôi nghĩ rằng, quá khó để quản lý với tcp socket vì vậy tôi nên chọn XMPP hoặc SIP. Tôi sẽ sử dụng Java trong dự án này. Bạn gợi ý cho tôi cái nào? và ưu và nhược điểm của họ là gì? hoặc bạn có biết giải pháp hiệu quả hơn không?XMPP vs So sánh SIP

Trả lời

12

Nó giống như so sánh táo với cam, vì SIP ban đầu được thiết kế cho VoIP và XMPP cho nhắn tin tức thì.

Theo ý kiến ​​của tôi, đối với tin nhắn văn bản, XMPP phù hợp hơn.

XMPP dễ dàng hơn nhiều so với quan điểm của tường lửa - nó chỉ cần một cổng TCP 5222 (và cổng 5269 để liên lạc với máy chủ đến máy chủ). Vì 5222 là cùng một cổng như Google Talk đang sử dụng, nó hiếm khi được lọc bởi tường lửa của công ty. XMPP cũng hỗ trợ STARTTLS trên cùng một cổng 5222, vì vậy lưu lượng truy cập có thể dễ dàng được bảo mật.

SIP, mặt khác, thường hoạt động trên UDP, cần nhiều hơn một cổng và thường được lọc bởi tường lửa của công ty.

6

Tôi nghĩ bạn nên sử dụng SIP vì nó hỗ trợ giao thức ngang hàng và trên UDP/TCP. Nó hỗ trợ SIP SIMPLE và CPM xem http://www.linkedin.com/groups/Differences-betwen-SIP-SIMPLE-CPM-1890406.S.150607448 để biết chi tiết.

Bạn sẽ viết ít mã hơn nếu bạn sử dụng chồng SIP nguồn mở đi kèm với các tính năng SIP SIMPLE và CPM.

  1. http://dev.telestax.com/jain-sip/

  2. Hãy xem servlets Sip Mobicent dựa trên Jain-SIP. https://code.google.com/p/sipservlets/. Bạn có thể sử dụng Tomcat/JBoss để triển khai máy chủ của bạn.

  3. https://code.google.com/p/openjsip/

Bạn có thể thêm một máy chủ Presence Lightweight trên máy chủ mã nguồn mở SIP để hỗ trợ Presence giữa khách hàng SIP.

Trên ngăn xếp phía máy khách, bạn có thể sử dụng ngăn xếp nguồn mở cơ bản.

Chi tiết @ Looking for a SIP Stack for Android

https://code.google.com/p/android-rcs-ims-stack/