2012-02-16 35 views
5

Libjingle có vẻ rất mạnh mẽ và đi kèm với một loạt các chương trình mẫu và phần mở rộng. Tuy nhiên, tôi đã không thể sử dụng nó, và những người tôi đã nói chuyện trên IRC đã nói với tôi rằng họ thấy rằng API là một mớ hỗn độn và tôi nên sử dụng cái gì khác.Hướng dẫn cho libjingle?

Nhưng tôi sẵn sàng thử lại lần nữa. Có ai có một hướng dẫn tốt? Hoặc một bài thuyết trình tốt về các lớp khác nhau, để bắt đầu? (Tài liệu chính thức của Google không).

Trả lời

1

Tôi vừa xây dựng libjingle. Nó đã không xây dựng out-of-the-box và yêu cầu một số bản vá lỗi (tài liệu trên trang web libjingle). Và tôi chuẩn bị làm bài kiểm tra đầu cuối. Tôi rất vui khi chia sẻ những điều tôi học được.

+0

có thể cung cấp thông tin cho tài liệu libjingle và các bước để tạo tài liệu. Cảm ơn trước. –

1

Nếu bạn gặp vấn đề về xây dựng, tôi cảm thấy tồi tệ cho bạn, con trai. Bởi vì nghiêm túc, libjingle là một bitch để có được biên dịch. Nếu bạn có thể làm cho nó được biên dịch cho bất kỳ nền tảng nào bạn đang xây dựng, thì bạn là 90% con đường ở đó. Nó thực sự sẽ phụ thuộc vào bạn ngồi vào một ngày cuối tuần và cày qua các vấn đề trình biên dịch từng người một. Hai con trỏ nhanh cho Xcode: loại bỏ (nhưng không xóa) tất cả các cửa sổ cụ thể shit, và loại bỏ tất cả các tập tin có một phương pháp chính (unittests và nguồn điện.)

Một khi bạn đã xây dựng, API thực sự là khá thẳng về phía trước. Kiến trúc của một ứng dụng libjingle điển hình có một số nhiệm vụ XMPP chạy. Một số tác vụ là các tác vụ đầu ra sẽ gửi các khổ thơ: http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/friendinvitesendtask.cc (xem phương thức Gửi) Điều này sẽ khá đơn giản. Nó xây dựng một XML stanza và xếp hàng nó cho XMPPclient để xử lý.

Ngoài ra còn có nhiệm vụ đầu vào xử lý các khổ thơ: http://code.google.com/p/libjingle/source/browse/trunk/talk/examples/call/mucinviterecvtask.cc (tìm hiểu phương thức HandleStanza)

Trong khi phương pháp HandleStanza đặc biệt này là một shit-show, các ý chính của nó là phương pháp này được gọi là cho tất cả Tin nhắn XMPP. Trước tiên, bạn cần phải xác định xem bạn quan tâm đến nó hay không:

if (stanza->Name() != QN_MESSAGE) return false; 

Sau đó, bạn sẽ đi qua XML và kéo ra các thông tin bạn cần và các bộ phận tín hiệu của ứng dụng của bạn mà quan tâm về vấn đề này.

Tất nhiên, cũng có API đường hầm, vốn phức tạp hơn và không thực sự nằm trong phạm vi của câu trả lời StackOverflow. Nếu có đủ sự quan tâm tôi có thể nhận được vào điều này, nhưng tôi khuyên bạn đầu tiên ít nhất thiết lập libjingle và vượt qua xung quanh một số tin nhắn XMPP trước khi bạn đi sâu vào việc thiết lập đường hầm.

Một con trỏ cuối cùng về việc sử dụng libjingle: cực kỳ cẩn thận về luồng.

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