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

边栏推荐
- Switch principle
- The method of using ROS1 bag under ROS2
- 用户和用户组管理、文件权限管理
- Mina断线重连
- 产品学习资料
- 入职前,没想到他们玩的这么花
- Tencent greetings function SCF - entry instructions
- King power volume LinkSLA, realize operations engineer is happy fishing
- This is indeed the best article on microservice architecture I have read!
- 跨域的十种解决方案详解(总结)
猜你喜欢

spark operator - map vs mapPartitions operator

King power volume LinkSLA, realize operations engineer is happy fishing

By solving these three problems, the operation and maintenance efficiency will exceed 90% of the hospital

IP packet format (ICMP protocol and ARP protocol)
time complexity and space complexity

I/O performance and reliability

IP地址及子网的划分

OpenCV3.0 is compatible with VS2010 and VS2013

有哪些事情是你做了运维才知道的?

el-autocomplete使用
随机推荐
7步完成云上监控
What should I do if the SSL certificate prompts that it is expired or invalid?
[Day1] VMware software installation
Autoware--Beike Tianhui rfans lidar uses the camera & lidar joint calibration file to verify the fusion effect of point cloud images
运维工程师,快来薅羊毛
Xiaodu Xiaodu is here!
markdown编辑器模板
Regular expression small example - get number character and repeated the most
交换机原理
Problems encountered in installing Yolo3 target detection module in Autoware
Configuration of TensorFlow ObjecDetectionAPI under Anaconda3 of win10 system
逻辑卷创建
Into the pre-service, thought they play so flowers
Why can't I add a new hard disk to scan?How to solve?
ROS2下使用ROS1 bag的方法
[issue resolved] - jenkins pipeline checkout timeout
VLAN介绍与实验
Proprietary host CDH
selenium学习
正则表达式小示例--获取重复最多的字符及其数量