2013-01-07 25 views
12

Tôi đang phát triển một ứng dụng Android, trong đó tôi phải triển khai nhắn tin trò chuyện. Tôi muốn một cuộc trò chuyện hoặc cuộc trò chuyện nhóm.Triển khai một và một cuộc trò chuyện nhóm trong android

Nhưng tôi không biết bắt đầu như thế nào. Xin hãy giúp tôi với công cụ này. Bất kỳ trợ giúp sẽ được đánh giá cao.

Trả lời

33

Một cơ chế chat đơn giản sẽ có 2 chức năng cơ bản

  1. Gửi tin nhắn tới máy chủ (với thông tin về địa chỉ nhận)

  2. Nhận tin nhắn từ máy chủ (dành riêng cho tên người dùng của tôi)

Bước đầu tiên rất đơn giản, chúng tôi có thể tạo một dịch vụ web sẽ chấp nhận thư với thông tin bổ sung về người nhận. Chúng ta có thể tạo nó bằng cách sử dụng bất kỳ ngôn ngữ phía máy chủ nào.

Bước 2, đó là lấy tin nhắn từ máy chủ có thể được thực hiện bằng 2 kỹ thuật, Kéo nhắn (sử dụng phiếu) từ máy chủ, hoặc Đẩy nhắn từ máy chủ đến điện thoại android

  1. Polling: Trong điều này, thiết bị Android sẽ tiếp tục truy cập máy chủ sau vài giây để kiểm tra xem có tin nhắn nào cho người dùng không. Điều này một lần nữa có thể được thực hiện bằng cách sử dụng một nhiệm vụ async đơn giản ở phía khách hàng mà sẽ tiếp tục gọi một dịch vụ web sau khi nói 2-3 giây. Điều này là tốt để sử dụng nếu chúng tôi đang có kế hoạch để cho phép trò chuyện chỉ khi người dùng đang truy cập vào ứng dụng (không có thông báo như gmail hoặc facebook), để chúng tôi có thể giết dịch vụ bỏ phiếu khi không sử dụng (nếu không nó sẽ ăn tài nguyên).

  2. Thông báo đẩy: tùy chọn tốt hơn là sử dụng thông báo đẩy. Android cung cấp tính năng nhắn tin qua đám mây của Google hoặc GCM (http://developer.android.com/google/gcm/index.html) giúp bạn dễ dàng đẩy máy chủ từ máy chủ. Nếu không, bạn có thể thử API của bên thứ ba như urbanairship hoặc pushwoosh tùy theo yêu cầu của bạn. Thông báo đẩy sẽ giúp người dùng nhận tin nhắn ngay cả khi anh ấy không sử dụng ứng dụng.

Tóm lại, một dịch vụ web để nhận thư và cơ chế thông báo đẩy phải đủ để triển khai dịch vụ trò chuyện trong Android.

nhỏ chút thông tin về UrbanAirship

tôi đã sử dụng UA tại một trong những dự án của tôi cho thông báo đẩy khi tôi cần thiết để hỗ trợ cả iOS và Android. Nếu bạn chỉ muốn hỗ trợ Android GCM cũng có thể là một lựa chọn tốt.

Coming back to UA, kiểm tra này cho mã và sử dụng mẫu: https://docs.urbanairship.com/display/DOCS/Home

Cách nó hoạt động rất đơn giản, khi ai đó cài đặt các ứng dụng và được kết nối với internet, đăng ký ứng dụng riêng của mình với dịch vụ UA. Một mã duy nhất được chỉ định cho mỗi ứng dụng đã cài đặt (đây là lúc bạn có thể nắm bắt tên người dùng và mã duy nhất và lưu trữ ở đâu đó trong DB của bạn). UA tiếp theo cung cấp một API sử dụng mà bạn có thể đẩy một tin nhắn đến người nhận được chỉ định, sử dụng các mã duy nhất có sẵn với UA. Các tin nhắn này có thể được nhận bởi ứng dụng android và được sử dụng theo yêu cầu.Ngay cả khi ứng dụng không chạy, chúng tôi có thể hiển thị thông báo giống như khi chúng tôi nhận được email hoặc tin nhắn

+0

Rất tốt giải thích Kamal .. Bạn có thể xây dựng bước 2 của bạn với một số mã hoặc liên kết – Aditya1510

+0

Thnks Kamal .. Bạn có thể đặt một số ánh sáng trên tin nhắn đẩy có nghĩa là làm thế nào để thực hiện urbanship .. –

+1

Hi những gì bạn giải thích thực sự hữu ích Kamal. Chỉ cần có một nghi ngờ tôi hy vọng bạn có thể giải quyết nó bằng cách trả lời. Theo tôi biết UA gửi thông báo đẩy cho tất cả các thiết bị mà ứng dụng được cài đặt. Nhưng trong một thông báo đẩy trò chuyện chỉ nên được gửi tới một người dùng cụ thể được đề cập. Làm thế nào để đạt được điều này. Nếu bất cứ ai có thể trả lời câu hỏi của tôi thì nó sẽ thực sự hữu ích cho tôi. Cảm ơn trước – newBie

0

Bạn có thể sử dụng nền tảng hiện tại như Scringo. Nó cung cấp cho bạn một cuộc trò chuyện trực tiếp cũng như trò chuyện nhóm (cả khách hàng và máy chủ) cũng như dịch vụ thông báo đẩy.

+0

Liên kết bị hỏng, bạn có thể vui lòng cập nhật nó không? – Phalgun

Các vấn đề liên quan