Nodejs Socket.io ngưng hoạt động sau vài phút, ai bị lỗi này không



  • @QQ288-Việt-Nam Cái này thì bạn có send socket qua 1 proxy server nào k ?. Kết nối có local k ?. À ý mình là dev mode thì dùng node start.js là được rồi. Khi nào bạn lên production hẵn dùng đến mấy thằng run background.
    Bạn có mô hình hết nối. Rồi bạn check ws ở mục network của dev chrome chưa ?.

    Sent from Rodgers Zone!!!

    0


  • @Nguyen-Hien Hi ban, mình cũng không biết proxy server là gì. Hiện tại thì app mình đã deploy lên vps centos 7. App của mình hiện tại chạy cổng 80, nên lúc trỏ tên miền về là chạy thẳng luôn



  • @Nguyen-Hien mình check ở mục ws hiện ra cái này 0_1519917479511_image.png



  • Cái này chắc bạn phải chụp lỗi hoặc code để mọi người xem thử chứ thế này khó đoán bệnh lắm bạn



  • @Phuocanh-Ta Đây là code phía server của mình, bạn xem giúp với
    0_1519950772632_image.png



  • mình nghĩ nên check idleTimeout config trước.

    pingTimeout (Number): how many ms without a pong packet to consider the connection closed (60000)
    pingInterval (Number): how many ms before sending a new ping packet (25000).
    

    Còn nếu bạn có xài thông qua nginx, phải check nó lun.



  • @QQ288-Việt-Nam Bạn dùng Pm2 mà có watch app của bạn không vậy



  • @Phuocanh-Ta hi ban, watch app như nào vậy bạn??



  • @QQ288-Việt-Nam PM2 có option watch để xem code thay đổi thì nó tự restart lại app ấy bạn, mà bạn dùng mongoDB hay MySql vậy



  • @kevin3489 mình log ra như này bạn ơi

    0_1519959665099_image.png



  • @Phuocanh-Ta Mình dùng SQl bạn ơi, mà giờ phát hiện ra lỗi là câu lệnh sql không thực hiện được. Mình cũng không hiểu là bật app lên thì lệnh query tới database thực hiện được, mà sau 1 vài phút không hoạt động, mình refesh lại trang câu lệnh sql lại bị lỗi



  • Có lẽ đây là vấn đề của bạn chăng :D
    https://github.com/socketio/socket.io/issues/777



  • @Phuocanh-Ta Nhiều lỗi quá chả biết lỗi nào bạn à, không biết lỗi socket.io hay lỗi kết nối đến server?



  • Mình thấy trong đó ng ta bảo do socket.io nó ngắt truyền dữ liệu nên khi kết nối lại hay chuyển gói dữ liệu mới thì dữ liệu không truyền đến được server => câu query của bạn không đủ dữ liệu để thực thi => server bị tắt do lỗi query



  • @QQ288-Việt-Nam thử thêm cái này coi bạn

    io.configure( function() {
        io.set('close timeout', 60*60*24); // 24h time out
    });
    


  • @Phuocanh-Ta Vẫn không được bạn à, hình như socket ngừng hoạt động sau vài phút, khi reload page thì hàm query lấy dữ liệu từ database không thực hiện gây ra lỗi



  • Vậy chắc bạn phải log lại các dữ liệu truyền vào câu lệnh query rồi, để xem thử ngang đoạn nào dữ liệu bị lỗi hay thiếu rồi mới tính tiếp


Log in to reply