当前位置:网站首页>Mina's long and short connections
Mina's long and short connections
2022-08-05 06:21:00 【Sajia Roshan Demon King】
1. Long connection
The two communicating parties maintain a connection state for a long time without disconnecting.
For example, when you log in to QQ, you will connect to the Tencent server. Once the connection is established, it will not be disconnected unless an exception occurs. This method is a long connection.
It consumes IO resources for long connections.
2. Short connection
The two communicating parties do not maintain a long-term connection state. After a request-response ends, the connection is automatically disconnected.
For example: http protocol, the client initiates an http request, and the server processes the http request. When the server finishes processing, it disconnects the client data after returning it, and needs to re-initiate the next connection request.
3. Short connection chestnut
Or refer to the previous section"Introduction to Mina""'s chestnut, modify the processor MyServerHandler.java on the Mina server side
package com.hl.magic.mina.mina1;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.session.IoSession;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.Date;/*** Custom Mina server session adapter** @Author HL* @Date 2021/10/10 21:06*/public class MyServerHandler extends IoHandlerAdapter {private static final Logger LOGGER = LoggerFactory.getLogger(MyServerHandler.class);/*** create session** @param session session object*/@Overridepublic void sessionCreated(IoSession session) throws Exception {LOGGER.debug("sessionCreated");}/*** Open session** @param session session object*/@Overridepublic void sessionOpened(IoSession session) throws Exception {LOGGER.debug("sessionOpened");}/*** close the session** @param session session object*/@Overridepublic void sessionClosed(IoSession session) throws Exception {LOGGER.debug("sessionClosed");}/*** Session idle** @param session session object* @param status session status*/@Overridepublic void sessionIdle(IoSession session, IdleStatus status) {LOGGER.debug("IDLE: [{}]", session.getIdleCount(status));}/*** When the connection is abnormal** @param session session object*/@Overridepublic void exceptionCaught(IoSession session, Throwable cause) {LOGGER.debug("exceptionCaught");}/*** receive messages** @param session session object* @param message message body*/@Overridepublic void messageReceived(IoSession session, Object message) {String msg = (String) message;LOGGER.debug("Data received by server: [{}]", msg);//Long connection mode monitoring, if you want to change to short connection, comment the connection disconnection mode below, and disconnect in the messageSent method// if (msg.trim().equalsIgnoreCase("quit")) {// session.closeNow();// return;// }Date date = new Date();session.write("message received, time: " + date);}/*** Occurrence message** @param session session object* @param message message body*/@Overridepublic void messageSent(IoSession session, Object message) {LOGGER.debug("messageSent...");// Short connection method, automatically disconnect after sending the messagesession.closeNow();}}
Run Mina server program MyServer.java class
Run CMD, enter telnet 127.0.0.1 54321 in the window to establish a connection with the server
Then send the data "ww", you can see that the server will automatically disconnect after receiving the data and giving a response.
边栏推荐
- Tencent greetings function SCF - entry instructions
- Spark source code-task submission process-6.2-sparkContext initialization-TaskScheduler task scheduler
- VRRP principle and command
- Insight into the general trend of the Internet, after reading this article, you will have a thorough understanding of Chinese domain names
- Autoware--Beike Tianhui rfans lidar uses the camera & lidar joint calibration file to verify the fusion effect of point cloud images
- Getting Started Document 07 Staged Output
- Why can't I add a new hard disk to scan?How to solve?
- 路由器和静态路由的配置
- Regular expression small example - get number character and repeated the most
- What?CDN cache acceleration only works for accelerating static content?
猜你喜欢
static routing
markdown editor template
By solving these three problems, the operation and maintenance efficiency will exceed 90% of the hospital
King power volume LinkSLA, realize operations engineer is happy fishing
IP address and subnet division
[Day6] File system permission management, file special permissions, hidden attributes
增长:IT运维发展趋势报告
VLAN details and experiments
Mongodb查询分析器解析
干货!教您使用工业树莓派结合CODESYS配置EtherCAT主站
随机推荐
Advantages of overseas servers
正则表达式小实例--验证邮箱地址
Browser Storage WebStorage
spark source code - task submission process - 1-sparkSubmit
逻辑卷创建
IP packet format (ICMP protocol and ARP protocol)
Operation and maintenance engineer, come and pick up the wool
The problem of calling ds18b20 through a single bus
Growth: IT Operations Trends Report
network issue?Service packet loss?This is enough
wc、grep、tar、vi/vim
The idea of commonly used shortcut key
Logical volume creation
Wechat applet page jump to pass parameters
[问题已处理]-虚拟机报错contains a file system with errors check forced
传输层协议
The spark operator - repartition operator
Quick question and quick answer - FAQ of Tencent Cloud Server
千亿IT运维市场,产品要凭实力说话
跨域的十种解决方案详解(总结)