2012-01-02 33 views
18

Liệu socket.io có chế độ gỡ lỗi phía máy khách, nơi bạn có thể thấy mọi thứ mà máy chủ đã gửi cho bạn theo nghĩa đen?Gỡ lỗi khách hàng Socket.io?

Bây giờ bạn đạt được hiệu quả tương tự với đoạn mã sau:

socket.on('HELLO', function(arg1, arg2) { console.log('HELLO', arg1, arg2) ... 
socket.on('WORLD', function(arg1) { console.log('WORLD', arg1) ... 

Nó sẽ thực sự tiện lợi nếu tôi có thể làm điều này một cách dễ dàng mà không cần đặt console.log ở khắp mọi nơi.

Trả lời

7

Bạn có thể nhìn thấy nó một cách dễ dàng trong thanh tra web trình duyệt webkit của (chrome, safari, crom) Để làm điều này

  • nhấn chuột phải trên trang
  • Đến Kiểm tra yếu tố
  • Bấm vào tab mạng
  • Tải lại trang đã mở tab mạng.
  • Bạn có thể xem tất cả các tài nguyên có yêu cầu nhận http và phản hồi của chúng được tải.
  • Tìm yêu cầu đầu tiên đến máy chủ socket.io.
  • Thao tác này sẽ lấy lại danh sách các phương tiện truyền tải tin nhắn có sẵn.
  • Khách hàng Socket.io sẽ nhận phương tiện giao thông đầu tiên có sẵn. (Websockets nếu được trình duyệt của bạn hỗ trợ)
  • Bây giờ trong yêu cầu thứ hai, bạn sẽ thấy tất cả các phản hồi sẽ trở lại trong tab 'khung'.

Reference image for web inspector

2

Kể từ phiên bản 1.0 của Socket.io bạn có thể thiết lập "debug" bất động sản trong localStorage của bạn để "*". Sau đó, bạn sẽ nhận được tất cả các bản ghi của khách hàng. Bạn thậm chí có thể lọc, bởi vì nó sử dụng https://github.com/visionmedia/debug dưới mui xe. Nó được thiết kế tuyệt đẹp ghi lại ở đây: http://socket.io/docs/logging-and-debugging/

+2

tài liệu không đẹp. Nếu bạn chỉ muốn xem những dòng có dữ liệu mới đến từ ổ cắm, hãy đặt cờ gỡ lỗi thành "socket.io-client: socket". Tôi hy vọng điều này có thể giúp làm ví dụ về các bộ lọc (được đề cập trong tài liệu w/o ví dụ). –

14

Dán này để an ủi, nhấp enter và làm mới trang của bạn:

localStorage.debug = '*'; 

Để có được chỉ thông tin gỡ lỗi với dữ liệu đến từ ổ cắm, dán này để thay thế:

localStorage.debug = 'socket.io-client:socket'; 
Các vấn đề liên quan