Chương 15 : Sử dụng MESSAGE request
Chúng
phần này chúng ta sẽ bổ sung vào HelloPhone 1 Intant Messaging đơn giản
có tính năng chat bằng ký tự giữa 2 peer bởi sử dụng MESSAGE request.
Do đó, chúng ta bổ sung vào HelloPhoneGUI 1 số thành phần giao diện để dễ dàng thực hiện chat giữa 2 peer :
I. Class HelloPhoneGUI :
Bổ sung các thành phần vào class HelloPhoneGUI như sau:
- txtReceivedMessages: là textArea, hiển thị nội dung của các MESSAGE request gởi đi và nhận được.
- txtSendMessage: là textArea, soạn thảo nội dung 1 MESSAGE request.
- btnSend : là button, nhiệm vụ gởi MESSAGE request.
- Phương thức getSendMessage() : lấy nội dung của txtSendMessage do người dùng nhập vào.
- Phương thức appendReceivedMessages() : hiện thị ra màn hình nội dung của 1 MESSAGE khi gởi đi hoặc nhận được.
- Phương thức btnSendMessageActionPerformed(): thực hiện hành động gởi MESSAGE request, bằng cách gọi phương thức sendMessage() của class HelloPhoneListerner.
II. class HelloPhoneListener:
Bổ sung code trong class HelloPhoneListener:
- Phương thức SendMessage()
: tạo ra MESSAGE request có content là nội dung được lấy từ
txtSendMessage. Phương thức SendMessage() này được gọi khi người dùng
nhấn vào button Send. Tạo MESSAGE request tương tự như INVITE request,
bạn lưu ý những phần in đậm trong table bên dưới :
- Phương thức processRequest() : bổ sung thêm trường hợp xử lý Khi UAS nhận được MESSAGE request, xử lý như sau:
+ Tạo “200 OK” response và gởi phản hồi đến UAC.
+ Lấy nội dung của MESSAGE request và hiển thị ra màn hình.
- Phương thức processResponse()
: bổ sung thêm trường hợp xử lý khi UAC nhận được response phản hồi
dành cho MESSAGE request trong trường hợp response có status code là
404, thể hiện MESSAGE đã gởi đi không thành công thì hiển thị ra màn
hình, nội dung “Previous message not sent”
III. class SipProxyListener :
Proxy xử lý MESSAGE request giống như INVITE request nên chúng ta chỉ thay thế :
- if (request.getMethod().equals(Request.INVITE)
thành
- if (request.getMethod().equals(Request.INVITE)
|| request.getMethod().equals(Request.MESSAGE))
IV. Chạy chương trình :
Cũng tương tự như phần trước:
- Đầu tiên, class SipProxyGUI phải chạy trước và bấm button ON để khởi động proxy.
- Kế tiếp lần lượt chạy các UA bởi class HelloPhoneGUI.
Lưu ý : bạn có thể chạy nhiều giao diện UA nhưng chỉ chạy duy nhất 1 proxy.
Download code :
http://www.mediafire.com/download/kxaq7h4qk7mhd32/HelloPhone_JAINSIP.rar
Không có nhận xét nào:
Đăng nhận xét