Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

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

    Hỏi Đáp
    1
    28
    3919
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      QQ288 Việt Nam last edited by

      Chào mọi người, mình hiện tại đag tập deploy app đơn giản lên centos nhưng đang lỗi. Mình có ứng dụng chat build bằng nodejs và socket.io nhưng cứ 5 phút là tự động tắt không hiểu bị lỗi gì.
      Mình dùng putty để kết nối với VPS, sau đó dùng lệnh pm2 để start dự án. Bật Putty thì chat sẽ không tự động mất kết nối, nhưng tắt putty đi thì màn hình chat trắng xóa mặc dù vẫn truy cập vào được.

      Nguyen Hien 1 Reply Last reply Reply Quote 0
      • Phuocanh Ta
        Phuocanh Ta last edited by

        Bạn xem server có bị restart k ak bác. Bạn cài đặt cho pm2 tự start sau khi server khởi động lại với lệnh

        sudo pm2 startup systemd
        

        Bạn xem bài này để biết thêm chi tiết nhé
        How To Set Up a Node.js Application for Production on CentOS 7

        1 Reply Last reply Reply Quote 0
        • Q
          QQ288 Việt Nam last edited by

          Hi Ban,
          Mình cũng chạy lệnh start tự động kia rồi, nhưng không được bạn à

          1 Reply Last reply Reply Quote 0
          • Phuocanh Ta
            Phuocanh Ta last edited by

            Vậy lúc server bị tắt thì bạn log vào putty xong check pm2 monit xem trạng thái app nó thế nào, với xem có thông báo lỗi gì không bạn

            Q 1 Reply Last reply Reply Quote 0
            • Nguyen Hien
              Nguyen Hien @QQ288 Việt Nam last edited by

              @QQ288-Việt-Nam

              1. Là bạn đang ở dev mode. Thì việc log dev liên tục là điều cần thiết. Bạn thửu log hết data xem.
              2. Crash ở đây thường sau 1 tg thường là việc có 1 request của bạn sẽ bị throw. Và bạn ko bắt được lỗi này. Solution vẫn là log. 1 phần sẽ là handle errror của nodejs hoặc socket.io thôi.

              Sent from Rodgers Zone!!!

              Q 1 Reply Last reply Reply Quote 0
              • Q
                QQ288 Việt Nam @Phuocanh Ta last edited by

                @Phuocanh-Ta Mình bật pm2 monit thì thấy hàm socket.on trên server không hoạt động hay sao ý, hoặc hàm socket.emit ở client khong hoạt đông. pm2 stop xong khởi động lại thì mới được bạn à. Không hiểu lỗi gì. Bạn giúp mình với

                1 Reply Last reply Reply Quote 0
                • Q
                  QQ288 Việt Nam @Nguyen Hien last edited by

                  @Nguyen-Hien Thank bạn, bạn cho mình hỏi cách log dev như nào với

                  Nguyen Hien 1 Reply Last reply Reply Quote 0
                  • Nguyen Hien
                    Nguyen Hien @QQ288 Việt Nam last edited by

                    @QQ288-Việt-Nam Console.log thoi. Voi dung dung pm2 de run. Node <socket.js file>. Con neu dung Pm2 thi su dung pm2 log app

                    Sent from Rodgers Zone!!!

                    Q 2 Replies Last reply Reply Quote 0
                    • Q
                      QQ288 Việt Nam @Nguyen Hien last edited by

                      @Nguyen-Hien mình chưa rõ ý bạn lắm. Có nghĩa là không nên dùng pm2 để run app hả bạn. có thư viện nào tốt hơn không bạn

                      1 Reply Last reply Reply Quote 0
                      • Q
                        QQ288 Việt Nam @Nguyen Hien last edited by

                        @Nguyen-Hien Mình vừa log ra. Hình như không phải lỗi. Vì cứ tầm 5 phút không hoạt động thì socket io tự động disconnect hay sao ý. Sau 5 phút refesh lại page check log thì mình thấy toàn nhảy vào hàm socket.on("disconect",...), Có cách nào giải quyết không bạn ơi

                        Nguyen Hien 1 Reply Last reply Reply Quote 0
                        • Nguyen Hien
                          Nguyen Hien @QQ288 Việt Nam last edited by

                          @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!!!

                          Q 2 Replies Last reply Reply Quote 0
                          • Q
                            QQ288 Việt Nam @Nguyen Hien last edited by

                            @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

                            1 Reply Last reply Reply Quote 0
                            • Q
                              QQ288 Việt Nam @Nguyen Hien last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • Phuocanh Ta
                                Phuocanh Ta last edited by

                                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

                                Q 1 Reply Last reply Reply Quote 0
                                • Q
                                  QQ288 Việt Nam @Phuocanh Ta last edited by

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

                                  Phuocanh Ta 1 Reply Last reply Reply Quote 0
                                  • K
                                    kevin3489 last edited by kevin3489

                                    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.

                                    Q 1 Reply Last reply Reply Quote 0
                                    • Phuocanh Ta
                                      Phuocanh Ta @QQ288 Việt Nam last edited by

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

                                      Q 1 Reply Last reply Reply Quote 0
                                      • Q
                                        QQ288 Việt Nam @Phuocanh Ta last edited by

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

                                        Phuocanh Ta 1 Reply Last reply Reply Quote 0
                                        • Phuocanh Ta
                                          Phuocanh Ta @QQ288 Việt Nam last edited by Phuocanh Ta

                                          @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

                                          Q 1 Reply Last reply Reply Quote 0
                                          • Q
                                            QQ288 Việt Nam @kevin3489 last edited by

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

                                            0_1519959665099_image.png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            $(document).ready(function () { app.coldLoad(); }); }