Iot device Gateway technology architecture Design TCP Gateway

Iot device Gateway technology architecture Design TCP Gateway

2022-09-05 0 1,589
Resource Number 38205 Last Updated 2025-02-24
¥ 0HKD Upgrade VIP
Download Now Matters needing attention
Can't download? Please contact customer service to submit a link error!
Value-added Service: Installation Guide Environment Configuration Secondary Development Template Modification Source Code Installation

This issue recommends the technical architecture design of iot device Gateway (Session management, heartbeat management, data uplink, data downlink) TCP Gateway.

Introduction

Technical architecture design of iot device gateway (Session management, heartbeat management, data uplink, data downlink)

Iot device Gateway technology architecture Design TCP Gateway插图

Description

NioEventLoop is Netty’s Reactor thread and its role is

  • Boss Group : used as the Acceptor thread of the server to accept client links and forward them to threads in the WorkerGroup.
  • Worker Group : acts as an I/O thread and reads and writes packets from or to the SocketChannel.
  • Task Queue/Delay Task Queue : Acts as a scheduled task thread to perform scheduled tasks, such as detecting link idle and sending heartbeat messages.

Summary

  • TcpServer: provides TCP connection services
  • TcpSessionManager: You can add listening events to listen for TCP session creation, destruction, etc.
  • LogSessionListener: a log listener, which is associated with tcpSessionManager. The listener must first SessionListener
  • TcpSender: TCP sender. The user sends message notifications to the client and implements downstream logic
  • ServerConfig: TCP configuration management class
  • TcpConnector: TCP container for managing connections between services and clients
  • NotifyProxy: notifyproxy is sent to the proxy class

The above is the default configuration, you can not change, but you may need to change the TCP port

. Network structure of TCP gateway

Build a TCP gateway long connection container based on Netty, and serve as the gateway access layer to provide service API request calls.

The client accesses the TCP gateway through the domain name +Port. Different carriers with different domain names correspond to different VIPs. The VIPs are advertised on LVS, and LVS forwards the request to HAProxy on the back end, and HAProxy forwards the request to Netty’s IP+Port on the back end.

LVS forwards the request to HAProxy on the back end. The request passes through LVS, but the response is directly fed back to the client by HAProxy, which is the DR Mode of LVS.

Iot device Gateway technology architecture Design TCP Gateway插图1

TCP Gateway execution sequence diagram

Iot device Gateway technology architecture Design TCP Gateway插图2

where steps 1 to 9 refer to the creation sequence of the Netty server and steps 10 to 13 refer to the creation sequence of the TCP gateway container.

  • Step 1 : Create an instance of ServerBootstrap. ServerBootstrap is the boot helper class of the Netty server.
  • Step 2 : Set and bind the Reactor thread pool. EventLoopGroup is the Reactor thread pool of Netty. EventLoop is responsible for all channels registered with this thread.
  • Step 3 : Set and bind the Server Channel. Netty Server needs to create the NioServerSocketChannel object.
  • Step 4 : Create a ChannelPipeline when a TCP link is established. ChannelPipeline is essentially a chain of responsibility that responsibly executes ChannelHandler.
  • Step 5 : Add and set ChannelHandler, add ChannelHandler to ChannelPipeline in serial.
  • Step 6 : Bind the listening port and start the server, registering the NioServerSocketChannel to the Selector.
  • Step 7 : Selector rotation training. EventLoop is responsible for scheduling and executing Selector polling operations.
  • Step 8 : Execute the network request event notification, poll the ready Channel, and run the ChannelPipeline by EventLoop.
  • Step 9 : Run the Netty system and service ChannelHandler, schedule and execute the ChannelHandler of ChannelPipeline in sequence.
  • Step 10 : Invoke the back-end Service through Proxy. After the ChannelRead event, schedule the back-end service by transmitting.
  • Step 11 : Create a Session. The Session and Connection are interdependent.
  • Step 12 : Create a Connection and save the Connection as ChannelHandlerContext.
  • Step 13 : Add a SessionListener that listens for events such as SessionCreate and SessionDestory.

Program run case step

Iot device Gateway technology architecture Design TCP Gateway插图3

1. Configure the local Host

Window address // C:\Windows\System32\drivers\etc\hosts

Add 127.0.0.1 iot-open.icloud.com

2. Start Server

< p data – track = “42” > location: com. Ibyte. Iot. Test. The server TestTcpServer < / p >

2. Start Client

< p data – track = “46” > location: com. Ibyte. Iot. Test. The client. The TcpClient < / p >

资源下载此资源为免费资源立即下载
Telegram:@John_Software

Disclaimer: This article is published by a third party and represents the views of the author only and has nothing to do with this website. This site does not make any guarantee or commitment to the authenticity, completeness and timeliness of this article and all or part of its content, please readers for reference only, and please verify the relevant content. The publication or republication of articles by this website for the purpose of conveying more information does not mean that it endorses its views or confirms its description, nor does it mean that this website is responsible for its authenticity.

Ictcoder Free Source Code Iot device Gateway technology architecture Design TCP Gateway https://ictcoder.com/iot-device-gateway-technology-architecture-design-tcp-gateway/

Share free open-source source code

Q&A
  • 1. Automatic: After making an online payment, click the (Download) link to download the source code; 2. Manual: Contact the seller or the official to check if the template is consistent. Then, place an order and make payment online. The seller ships the goods, and both parties inspect and confirm that there are no issues. ICTcoder will then settle the payment for the seller. Note: Please ensure to place your order and make payment through ICTcoder. If you do not place your order and make payment through ICTcoder, and the seller sends fake source code or encounters any issues, ICTcoder will not assist in resolving them, nor can we guarantee your funds!
View details
  • 1. Default transaction cycle for source code: The seller manually ships the goods within 1-3 days. The amount paid by the user will be held in escrow by ICTcoder until 7 days after the transaction is completed and both parties confirm that there are no issues. ICTcoder will then settle with the seller. In case of any disputes, ICTcoder will have staff to assist in handling until the dispute is resolved or a refund is made! If the buyer places an order and makes payment not through ICTcoder, any issues and disputes have nothing to do with ICTcoder, and ICTcoder will not be responsible for any liabilities!
View details
  • 1. ICTcoder will permanently archive the transaction process between both parties and snapshots of the traded goods to ensure the authenticity, validity, and security of the transaction! 2. ICTcoder cannot guarantee services such as "permanent package updates" and "permanent technical support" after the merchant's commitment. Buyers are advised to identify these services on their own. If necessary, they can contact ICTcoder for assistance; 3. When both website demonstration and image demonstration exist in the source code, and the text descriptions of the website and images are inconsistent, the text description of the image shall prevail as the basis for dispute resolution (excluding special statements or agreements); 4. If there is no statement such as "no legal basis for refund" or similar content, any indication on the product that "once sold, no refunds will be supported" or other similar declarations shall be deemed invalid; 5. Before the buyer places an order and makes payment, the transaction details agreed upon by both parties via WhatsApp or email can also serve as the basis for dispute resolution (in case of any inconsistency between the agreement and the description of the conflict, the agreement shall prevail); 6. Since chat records and email records can serve as the basis for dispute resolution, both parties should only communicate with each other through the contact information left on the system when contacting each other, in order to prevent the other party from denying their own commitments. 7. Although the probability of disputes is low, it is essential to retain important information such as chat records, text messages, and email records, in case a dispute arises, so that ICTcoder can intervene quickly.
View details
  • 1. As a third-party intermediary platform, ICTcoder solely protects transaction security and the rights and interests of both buyers and sellers based on the transaction contract (product description, agreed content before the transaction); 2. For online trading projects not on the ICTcoder platform, any consequences are unrelated to this platform; regardless of the reason why the seller requests an offline transaction, please contact the administrator to report.
View details

Related Source code

ICTcoder Customer Service

24-hour online professional services