CHƢƠNG 2 : GIỚI THIỆU VỀ EASYRTC FRAMEWORK
2.4 Một số API tiện ích khác củaEasyRTC
Dƣới đây liệt kê một số hàm tiện ích khác của EasyRTC hay đƣợc sử dụng trong các ứng dụng WebRTC.
Chỉ chia sẻ âm thanh hoặc video
Nếu chúng ta không muốn chia sẻ âm thanh hoặc video, ta có thể vô hiệu hóa nó với một trong những lời gọi dƣới đây [20].
easyrtc.enableAudio(false); easyrtc.enableVideo(false);
Các lời gọi này xác định nội dung của các dòng media địa phƣơng khởi tạo bởi hàm easyrtc.initMediaSource, vì vậy chúng ta phải gọi cho chúng trƣớc khi gọi hàm easyrtc.initMediaSource.
Thiết lập băng thông video
Chúng ta có thể thiết lập băng thông sử dụng để gửi và nhận mỗi dòng media bằng cách gọi hàm easyrtc.setVideoBandwidth( ). Hàm này nhận một đối số số nguyên duy nhất đại diện cho băng thông mong muốn tính theo kilobits mỗi giây [20].
Thiết lập băng thôngphải đƣợc gọi trƣớc khi bắt đầu hoặc chấp nhận kết nối vì nó hoạt động bằng cách thay đổi các bản ghi đƣợc sử dụng để thiết lập kết nối ngang hàng.
Nó không có hiệu lực trên các dòng media thông qua một kết nối ngang hàng đã đƣợc thiết lập trƣớc đó. Tuy nhiên hiện tại, API cho thiết lập băng thông này chỉ đƣợc hỗ trợ bởi Chrome, và Mozilla Firefox chƣa hỗ trợ tính năng này.
Gia nhập và rời khỏi phòng
EasyRTC có tính năng chia phòng rất hữu ích cho việc thiết lập các "phòng chat". Hành vi mặc định của tính năng này là [20]:
Nếu ngƣời sử dụng không xác định một phòng (hoặc thiết lập các phòng) trƣớc khi kết nối, ngƣời sử dụng sẽ đƣợc đƣa vào là một thành viên của phòng "mặc định".
Một ngƣời dùng có thể là một thành viên của nhiều phòng cùng một lúc.
Hàm callback RoomOccupantListener của ngƣời sử dụng sẽ đƣợc gọi bất cứ khi nào có sự thay đổi tại một phòng mà họ là thành viên.
Nếu ngƣời dùng tham gia vào một phòng chƣa tồn tại, hệ thống sẽ tự tạo ra phòng đó.
Một ngƣời dùng sẽ trở thành thành viên của một phòng bằng cách gọi:
easyrtc.joinRoom(roomName, roomParameters, successCallback, failureCallback);
Để ra khỏi một phòng, chúng ta có thể gọi hàm:
easyrtc.leaveRoom(roomName, successCallback, failureCallback);
Nghe và bắt lỗi
Chúng ta có thể đăng ký một hàm callback cho các trƣờng hợp lỗi để lấy đƣợc các thông tin về lỗi và giải quyết nó [20]. Việc đăng ký đƣợc thực hiện nhƣ sau:
easyrtc.setOnError( function(errEvent) { console.log(errEvent.errorText);}
Để sử dụng các kênh dữ liệu, cả hai bên kết nối phải kích hoạt các kênh truyền dữ liệu trƣớc khi gọi (hoặc chấp nhận một cuộc gọi):
easyrtc.enableDataChannels (true);
Chúng ta có thể lắng nghe các sự kiện kênh dữ liệu đƣợc mở và sẵn sàng để sử dụng, và kênh dữ liệu bị đóng lại:
easyrtc.setDataChannelOpenListener(
function(sourceEasyrtcid) { console.log("channel is open");} );
easyrtc.setDataChannelCloseListener(
function(sourceEasyrtcid) { console.log("channel has been closed");} );
Khi kênh dữ liệu đƣợc mở ra, chúng ta có thể gửi tin nhắn bằng cách gọi hàm sau: easyrtc.sendDataP2P(targetEasyrtcid, 'contactInfo', {
firstName:'john', lastName:'smith' });
Kết thúc cuộc gọi
Để kết thúc một cuộc gọi hiện tại với một ngƣời dùng nào đó, chúng ta gọi hàm easyrtc.hangup nhƣ sau:
easyrtc.hangup(peerEasyrtcid);
Hoặc để kết thúc cuộc gọi với tất cả mọi ngƣời, chúng ta có thể dùng: easyrtc.hangupAll();
Ngắt kết nối
Để ngắt kết nối với máy chủ, chúng ta gọi hàm sau: easyrtc.disconnect();
Trong Chƣơng này, chúng tôi đã tìm hiểu đƣợc về EasyRTC framework và cách để viết một ứng dụng WebRTC đơn giản với framework này. Trong Chƣơng tiếp theo của luận văn, chúng tôi sẽ ứng dụng các kiến thức đã tìm hiểu đƣợc về WebRTC và EasyRTC framework để xây dựng một ứng dụng web chat thời gian thực nhằm cải tiến hệ thống hỗ trợ khách hàng trực tuyến trong các website thƣơng mại điện tử.
CHƯƠNG 3: SỬ DỤNG EASYRTC FRAMEWORK ĐỂ XÂY DỰNG ỨNG DỤNG WEB CHAT THỜI GIAN THỰC
Trong chƣơng này, chúng tôi sẽ đi vào xây dựng một hệ thống web chat thời gian thực sử dụng WebRTC để hỗ trợ cho hệ thống hỗ trợ khách hàng trực tuyến của các website thƣơng mại điện tử.