제목 | socket 통신 관련 질문 및 조언을 듣고자 글을 올려봅니다. | ||
---|---|---|---|
카테고리 | 서버 | ||
글쓴이 | Densetsu | 작성시각 | 2017/05/29 09:36:03 |
|
|||
안녕하세요. 질문을 요약하자면 첨부된 이미지와 같이 통신이 어떤식으로 구현을 하는게 맞는지 조언을 구하고자 합니다. 일단.. 단촐한 제 상식선에서 정리를 하자면, client 인 내부 서버에서 메시지를 보내고 server 측에서 응답하고 그 값을 다시 client 가 정상적으로 받으면 자동으로 close 하게 됩니다. 이렇게 될 경우 output 이였던 프로세스는 자동으로 닫히게 되고 다시 요청할 경우 output 이였던 포트값은 변하게 됩니다. (용어들이 맞는지는 잘 모르겠네요.. socket 통신 쪽으로 개발을 많이 안해봐서..) 하지만, 업체측에서의 설명은 초기 socket 통신시 그 값 (통신했던 output 값인 듯..) 을 유지하고 통신하도록 계속 띄워놓으라는 식의 답변이였는데.. 제가 구현한 소스에서는
ex) tcp 0 0 127.0.0.1:80 127.0.0.1:34962(<< 매번 요청시 요녀석이 갱신..) TIME_WAIT - 어떻게 구현해야 되는지 감이 안 오네요;; (내부 server 형태로 띄우게 되면 매번 변경되는 포트마다 서버에서 열어줘야 하는 번거로움이 있는데.. 이런건 아니겠죠?..) 제가 잘못 생각하고 있는건지.. ㅠ 샘플 소스는 이렇습니다. (검색해서 찾은 기본 샘플입니다.)
var socket = net.connect({port: 포트번호, host:서버 IP}); socket.on('connect', function listener() { console.log('### connected to server! ###'); console.log('@ IP : ' + socket.localAddress); console.log('@ PORT : ' + socket.localPort); socket.write(업체 요청 데이터); }); socket.on('data', function(data) { console.log('>> socket Data : ' + data.toString()); //socket.end(); }); socket.on('end', function() { console.log('>> socket End : disconnected from server'); //socket.connect(port, host); });
업체측 메뉴얼 내용
관련해서 구현을 해보신 적이 있거나 대략적인 프로세스를 아시는 분이 있으시다면 조언 부탁 드리겠습니다 ㅠ 긴글 읽어주셔서 감사합니다. |
|||
첨부파일 |
example.jpg (53.5 KB) |
||
다음글 | HTML video태그와 mp4관련 질문입니다. (5) | ||
이전글 | php ssesion upload progress 세션... (6) | ||
변종원(웅파)
/
2017/05/29 10:18:01 /
추천
0
|
Densetsu
/
2017/05/29 10:29:31 /
추천
0
//웅파 글을 많이 올리진 않았지만.. 그 때 마다 답변주시니 감사 드립니다. ^^ 샘플 코드쪽 보시면 write 하고 자동으로 close 되는 현상 때문에 업체측에서 요구하는 프로세스를 구현할 수 없는 상태입니다. 물론 close 하고 자동으로 재연결해서 호출하는 소스도 추가해봤지만 그 때 output 하는 포트값이 변경되어 인식이 안된다고 리턴 메시지가 오는게 문제였습니다.. ㅠ 제가 관련해서 깊은 지식이 없는 관계로.. 위와같이 통신이 가능한 관련 샘플 및 참고할 수 있는 사이트나 검색 키워드 같은거 하나 주실 수 있을까요? |
변종원(웅파)
/
2017/05/29 12:55:28 /
추천
0
Densetsu/ restful api로 검색해서 개념 파악하시고 codeigniter restful로 검색하시면 사용하시기에 괜찮은 라이브러리 나옵니다. http를 이용하는 방식이라 포트 변동이 없고 단순히 호출하고 권한이 맞다면 해당 결과를 리턴하는 단순한 구조입니다. |
Densetsu
/
2017/05/29 13:37:10 /
추천
0
웅파// 신경써 주셔서 감사 드립니다 ^^ 업체측에 문의해본 결과.. 방식이 잘못된게 아니라.. 제가 데이터를 잘못 주고 있었다고 하네요; 잘못주니 세션을 유지하지 못하고 disconnect 했다고 합니다. (리턴값은 정상으로와서 제가 판단을 잘못했습니다.. 진작에 물어볼껄.. ㅠ) 답변 감사 드립니다! |
소켓은 지속적으로 붙어서 어떤 역할을 하도록 할때 사용합니다. 업체측 답변이 맞구요.
연결-리턴-종료 형태로 지속적으로 사용하려면 소켓이 아닌 restful 방식으로 사용하는 것이 맞습니다.
php방식처럼요. request - resonse(프로스세 끝)