Page 507 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 507

3)  app_server.js

               var  net  =  require('net');                                                                                          //  소켓  서버를  위한  모듈
               var  que  =  require('./query.js');
               rb  =  require('./server.js');
               var  moment  =  require('moment');


               //  앱  서버  생성
               var  app_server  =  net.createServer(function(socket){                                      // 어플  연결
                       console.log(rb.time()+'App  connected');
                       exports.send  =  function(data){              // 어플로  데이터  보내기  위한  사용자  정의  함수
                               console.log(rb.time()+"Server  -->  App  :  "  +  data);
                               rb_dog_data  =  data
                               socket.write(rb_dog_data);
                       }
                       socket.setEncoding("utf8");                                                                          // 데이터  UTF-8 로  인코딩
                       socket.on('data',  function(data){                                                              // 데이터를  받았을때
                               console.log(rb.time()+"App  -->  AppServer:"  +  data);
                               if(data  ==  "s"){                                                                // 사료  데이터 테이블 를  요청하는  명령어가  오면(  )
                                       que.select('feed',  function(db){                                                //select 문  실행
                                               console.log(db);
                                               socket.write(db);                                                                      //app 에  데이터값  전송
                                       })
                               }else  if(data  ==  "g"){                                                    // 간식  데이터 테이블 를  요청하는  명령어가  오면(  )
                                       que.select('snack',  function(db){                                              //select 문  실행
                                               console.log(db);
                                               socket.write(db);                                                                      //app 에  데이터값  전송
                                       })
                               }else{                                                                                                            // 그  외  명령어가  오면
                                       try{
                                               rb.appsend(data);                                                    //server.js 의  send   함수로  data   전송
                                               if(data=="1"){
               socket.write("Shooting");
                                                       que.insert_time()  // 시간  저장
                                               }else
                                                       socket.write(data);                                                                  // 전송이  되었음을  app 에  알림
                                       }catch(err){                                                                                        // 에러가  나면 연결이  안되는  것이다,
                                               console.error(rb.time()+err)
                                               socket.write("Pi  POWER  OFF")              // 클라이언트가  Off 되어있음으로  판단하고  넘긴다
                                       }
                               }
                       });
                 socket.on('end',  function(data){                                                                //  소켓  연결  종료  시  콜백함수  실행
                             console.log(rb.time()+"App  disconnected.");                        //   콘솔창에  연결이  종료되었다고  출력
                       });











                                                                                      인천전자마이스터고등학교
                                                         -  529  -                       정보통신기기과         529
   502   503   504   505   506   507   508   509   510   511   512