http://vietjack.com/html5/index.jsp Copyright © vietjack.com WebSockets HTML5 WebSockets công nghệ giao tiếp hai chiều phiên cho ứng dụng web mà điều hành qua Socket đơn tiếp xúc thông qua giao diện JavaScript trình duyệt tuân thủ HTML5 Một bạn nhận kết nối WebSocket với Web Server, bạn gửi liệu từ trình duyệt tới Server gọi phương thức send(), nhận liệu từ Server tới trình duyệt onmessage Event Handler Sau API mà tạo đối tượng WebSocket mới: var Socket = new WebSocket(url, [protocal] ); Ở đây, tham số url xác định URL để kết nối Thuộc tính thứ hai protocol tùy ý, có mặt, xác định giao thức phụ mà Server phải hỗ trợ cho kết nối để thành công Các thuộc tính WebSocket Sau thuộc tính đối tượng WebSocket Giả sử tạo đối tượng Socket đề cập trên: Thuộc tính Miêu tả Socket.readyState Thuộc tính đọc readyState biểu diễn trạng thái kết nối Nó có giá trị sau: • Giá trị kết nối chưa thành lập • Giá trị kết nối thành lập giao tiếp • Giá trị kết nối qua handshake đóng • Giá trị kết nối đóng khơng thể mở Socket.bufferedAmount Thuộc tính đọc bufferedAmount biểu diễn số byte UTF-8 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/html5/index.jsp Copyright © vietjack.com mà xếp hàng sử dụng phương thức send() Các kiện WebSocket Sau kiện liên kết với đối tượng WebSocket Giả sử tạo đối tượng Socket đề cập trên: Sự kiện Event Handler Miêu tả open Socket.onopen Sự kiện xảy kết nối Socket thành lập message Socket.onmessage Sự kiện xảy Client nhận liệu từ Server error Socket.onerror Sự kiện xảy có lỗi giao tiếp close Socket.onclose Sự kiện xảy kết nối đóng Các phương thức WebSocket Sau phương thức liên kết với đối tượng WebSocket Giả sử tạo đối tượng Socket đề cập trên: Phương thức Miêu tả Socket.send() Phương thức send(data) truyền tải liệu sử dụng kết nối Socket.close() Phương thức close() sử dụng để kết thúc kết nối tồn http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/html5/index.jsp Copyright © vietjack.com Ví dụ WebSocket Một WebSocket TCP socket hai chiều chuẩn Client Server Socket bắt đầu kết nối HTTP sau “Nâng cấp” thành TCP socket sau HTTP handshake Sau handshake, side gửi liệu Client-Side HTML JavaScript Code Tại thời điểm viết hướng dẫn này, có số trình duyệt hỗ trợ giao thức WebSocket Bạn thử ví dụ sau với phiên Chrome, Mozilla, Opera Safari function WebSocketTest() { if ("WebSocket" in window) { alert("WebSocket is supported by your Browser!"); // Let us open a web socket var ws = new WebSocket("ws://localhost:9998/echo"); sent "); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("Message is received "); }; ws.onclose = function() { // websocket is closed alert("Connection is closed "); }; } Run WebSocket Cài đặt pywebsocket Trước bạn kiểm tra chương trình Client trên, bạn cần Server mà hỗ trợ WebSocket Bạn tải mod_pywebsocket-x.x.x.tar.gz từ pywebsocket mà giúp đỡ cung cấp WebSocket mở rộng cho Apache HTTP Server cài đặt theo bước sau: • Unzip untar tệp tải • Vào thư mục pywebsocket-x.x.x/src/ • Chạy $python setup.py • Cài đặt $sudo python setup.py • Sau đọc tài liệu bởi: o $pydoc mod_pywebsocket Nó cài đặt mơi trường python bạn http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/html5/index.jsp Copyright © vietjack.com Bắt đầu Server Vào thư mục pywebsocket-x.x.x/src/mod_pywebsocket chạy lệnh sau: $sudo python standalone.py -p 9998 -w /example/ Nó bắt đầu Server Port 9998 sử dụng thư mục handler xác định tùy chọn –w nơi echo_wsh.py cư ngụ Bây sử dụng trình duyệt Chrome mở tập tin html bạn tạo phần bắt đầu Nếu trình duyệt hỗ trợ WebSocket(), sau bạn nhận cảnh báo trình duyệt bạn hỗ trợ WebSocket cuối bạn nhấn chuột “Run WebSocket”, bạn nhận thông báo Goodbye gửi từ Server script http://vietjack.com/ Trang chia sẻ các bài học online miễn phí ... trợ WebSocket Bạn tải mod_pywebsocket-x.x.x.tar.gz từ pywebsocket mà giúp đỡ cung cấp WebSocket mở rộng cho Apache HTTP Server cài đặt theo bước sau: • Unzip untar tệp tải • Vào thư mục pywebsocket-x.x.x/src/... // websocket is closed alert("Connection is closed "); }; } Run WebSocket< /a> Cài đặt pywebsocket... http://vietjack.com /html5/ index.jsp Copyright © vietjack.com Ví dụ WebSocket Một WebSocket