Câu trả lời ngắn gọn là 'cả hai'.
XMPP là một bộ giao thức ứng dụng để thực hiện trò chuyện trong thời gian thực (và nhiều thứ khác, cho vấn đề đó) - sau đó nó phải được vận chuyển qua mạng bằng cách nào đó, vì vậy bạn cần một ràng buộc vận chuyển. Có ba bindings giao thông chính cho XMPP -
- TCP/IP, đó là những gì người ta thường sử dụng trên Internet với các khách hàng có nguồn gốc trên các thiết bị
- HTTP (gọi tắt là Bosh), đó là những gì người ta có truyền thống được sử dụng khi sử dụng XMPP trong trình duyệt (vì TCP-IP không khả dụng đối với các ứng dụng Javascript trong trình duyệt)
- Websockets, một trong số đó sử dụng khi thực hiện XMPP trong trình duyệt hiện đại.
Vì vậy, nếu bạn đang phát triển một ứng dụng chat trong trình duyệt, bạn muốn chọn XMPP như giao thức ứng dụng và bạn muốn sử dụng WebSockets (trong một trình duyệt hiện đại) hoặc Bosh (trong trình duyệt cũ hơn) như vận tải mạng. Nếu bạn sử dụng thư viện XMPP cho Javascript như Stanza.io (https://github.com/otalk/stanza.io), nó sẽ hỗ trợ cả hai và bạn sẽ chỉ nghĩ về 'XMPP' thay vì lớp vận chuyển, ngoài việc thiết lập khi bạn phải nói với nó điểm cuối để kết nối với.
(Bạn không thể sử dụng 'chỉ ổ cắm web' để trò chuyện - bạn có thể sử dụng ổ cắm web không có XMPP, nhưng điều này thực sự có nghĩa là bạn đang phát minh giao thức tầng ứng dụng của riêng bạn để trò chuyện và tỷ lệ cược là bạn ' sẽ tiết kiệm rất nhiều thời gian và đau đầu bằng cách tận dụng lợi thế của công việc đã đi vào viết một với các thuộc tính hữu ích (bảo mật, danh tính, khả năng mở rộng, vv) và có các thư viện và máy chủ hiện có bằng cách sử dụng XMPP thay thế.)
Gần đây, tôi đã gặp phải vấn đề tương tự, câu trả lời của tôi là đi đến WebSockets. Node.JS đang trở thành một ngôn ngữ cực kỳ phổ biến, và theo quyền của nó. XMPP là ok - tuy nhiên theo ý kiến của tôi bạn đang hạn chế bản thân di chuyển về phía trước bằng cách quyết định đi cho công nghệ cũ này. Tuy nhiên, Node là một con thú khôn lanh và bạn phải tiếp cận nó một cách khác với cách bạn làm JavaScript. Nếu bạn đủ kiên nhẫn, tôi khuyên bạn nên đi Node - không chỉ cho việc này, mà còn cho phép bạn mở rộng ở các khu vực khác dễ dàng hơn. – JustSteveKing
XMPP là một Giao thức Nhắn tin và Hiện diện có thể mở rộng, Websocket là giao thức cung cấp liên lạc song công hoàn toàn trên Cổng 80. Bạn so sánh Táo với Cam. – Flow
@Flow: Tôi có thể so sánh táo với cam theo ý kiến của bạn. Nhưng những gì tôi yêu cầu là tôi nên chọn khi phát triển một trang web cung cấp khả năng trò chuyện trong thời gian thực. – Khafaga