반응형

 

(tcp/udp #9) IoT보드들의 상태를 확인할 수 있는 TCP서버를 노드레드(node-red)로 구현하기!(업그레이드)
녹칸다의 TCP, UDP통신을 위한 시리즈이다!
TCP/UDP시리즈 7편에서 노드레드(node-red)를 이용해서 간단한 TCP서버를 구현했다!
그리고 7~8편을 거쳐서 1:N통신이 쓸만한 수준으로 가능하다는 것을 확인해보았다!
이번편은 서버를 조금더 쓸만하게 만드는데 그 목적이 있다!
서버는 사물인터넷보드(wemos d1r1)를 직접 통제하는게 아니라 중계만 할 예정이다!
그리고 TCP클라이언트들의 접속상태와 송수신하고 있는 데이터량 등을 측정해서 시각화한다!
아마 기존 녹칸다의 노드레드(node-red)시리즈에서 볼 수 없었던 복잡한 내용이 난무할 것 같다!
그래도 이번편에 장기적으로 활용할 서버를 잘 구현해두면 쓰임새가 있을 것 같으니 완성도 있게 만들어보도록 하자!
(최대한 실사용 UI에 맞춰서 디자인 함)
서버가 구현이 되었다면 7~8편에서 테스트 했던 내용이 그대로 작동하는지 확인해보자!
(아래와 같은 내용을 중점적으로 테스트하면서 서버를 업그레이드 한다)
1.클라이언트들의 관리를 위한 딕셔너리를 구현하고 전역변수에 할당해서 사용한다!(기존은 전역변수 자체가 클라이언트 리스트임)
2.클라이언트들이 송수신하는 데이터인 JSON에 규칙오류가 발생할때 대응할 방안을 제시하시오!
3.클라이언트들이 송수신하는 데이터의 량을 노드별로 측정하고 전체적으로 측정해서 노드레드 UI에 출력하시오!
4.하나의 클라이언트가 여러대의 클라이언트들에게 메시지를 전송할때 어떤 전략을 쓸 수 있을지 제시하시오!
5.노드레드의 메인페이지를 깔끔하게 구현하시오!
6.확장성을 위해서 클라이언트의 타입을 지정할 수 있도록 하시오!
7.클라이언트들이 서버로 전송하는 메세지를 최대한 원형 그대로 전달하시오!(클라이언트 간 구조체를 전달할 경우)

(딕셔너리 키값 검색)
var dic = Object.keys(딕셔너리);
(덕셔너리에 값 넣기)
딕셔너리[키] = 값;
(딕셔너리에 값 삭제)
delete 딕셔너리[키1];

(서버에서 사용하는 아이콘)

link1.png
0.02MB
link2.png
0.02MB

 

 

(노드레드 node-red TCP서버와 IoT보드 TCP클라이언트 3대간의 통신!)

356-1(노드레드TCP서버).txt
0.02MB
356-1-1(보드1번).txt
0.00MB
356-1-2(보드2번).txt
0.00MB
356-1-3(보드3번).txt
0.00MB

(노드레드 node-red TCP서버와 IoT보드 TCP클라이언트 3대와 C# TCP클라이언트 1대와 통신!)

(IoT보드/wemos d1r1 보드에 LED 4개씩 달아서 C#으로 제어하기)

356-2(노드레드).txt
0.02MB
356-2-1(보드1번).txt
0.01MB
356-2-2(보드2번).txt
0.01MB
356-2-3(보드3번).txt
0.01MB

(C#TCP클라이언트)

example356-2.zip
4.26MB

반응형
Posted by 덕력킹
,