当前位置:网站首页>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.

边栏推荐
- What?CDN cache acceleration only works for accelerating static content?
- 监控系统的内卷,有什么讲究?
- The idea of commonly used shortcut key
- 增长:IT运维发展趋势报告
- IP address and subnet division
- I/O性能与可靠性
- LeetCode Interview Questions
- VLAN details and experiments
- Cloud computing - osi seven layers and TCP\IP protocol
- What should I do if the SSL certificate prompts that it is expired or invalid?
猜你喜欢
随机推荐
IP address and subnet division
Mongodb查询分析器解析
RAID磁盘阵列
wc、grep、tar、vi/vim
运维工程师,快来薅羊毛
Mina断线重连
The problem of calling ds18b20 through a single bus
To TrueNAS PVE through hard disk
Getting Started Doc 06 Adding files to a stream
el-autocomplete使用
Regular expression small example - get number character and repeated the most
正则表达式小实例--验证邮箱地址
OpenCV3.0 is compatible with VS2010 and VS2013
[Day6] File system permission management, file special permissions, hidden attributes
VRRP概述及实验
Disk management and file systems
What?CDN cache acceleration only works for accelerating static content?
ALC实验
Hugo搭建个人博客
程序员应该这样理解I/O






![[Paper Intensive Reading] The relationship between Precision-Recall and ROC curves](/img/8f/3c9944db96eef623779a5abe68355b.png)


