当前位置:网站首页>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.
边栏推荐
- The problem of redirecting to the home page when visiting a new page in dsf5.0
- 智能运维会取代人工运维吗?
- The problem of calling ds18b20 through a single bus
- NIO works is analysed
- 有哪些事情是你做了运维才知道的?
- 错误类型:反射。ReflectionException:无法设置属性“xxx”的“类”xxx”与价值“xxx”
- IP地址及子网的划分
- RAID磁盘阵列
- ACLs and NATs
- What impact does CIPU have on the cloud computing industry?
猜你喜欢
ALC实验
What are some things that you only know when you do operation and maintenance?
selenium模块的操作之拉钩
从“双卡双待“到”双通“,vivo率先推动DSDA架构落地
Growth: IT Operations Trends Report
[Day8] Commands involved in using LVM to expand
传输层协议
错误类型:反射。ReflectionException:无法设置属性“xxx”的“类”xxx”与价值“xxx”
Introduction to Network Layer Protocols
network issue?Service packet loss?This is enough
随机推荐
Transport layer protocol (TCP 3-way handshake)
Configuration of TensorFlow ObjecDetectionAPI under Anaconda3 of win10 system
VRRP原理及命令
ROS2下使用ROS1 bag的方法
正则表达式小实例--验证邮箱地址
Technology Sharing Miscellaneous Technologies
产品学习资料
千亿IT运维市场,产品要凭实力说话
js dynamically get screen width and height
The problem of calling ds18b20 through a single bus
Regular expression small example - get number character and repeated the most
sql server 重复值在后面计数
Browser Storage WebStorage
传输层协议(TCP3次握手)
Mongodb查询分析器解析
Billions of IT operations in the market, the product by strength to speak
idea 常用快捷键
The idea of commonly used shortcut key
Tencent greetings function SCF - entry instructions
The Servlet to jump to the JSP page, forwarding and redirection