继续上一篇,这篇主要讲通过mina往B端发送消息。并接受消息,mina是一个网络通信框架,封装了javaNIO。简单易用。网上有非常多关于他的介绍,在此不赘述了。...如上篇所介绍,完毕功能,须要五个类: PoolListener:监听,用来在系统启动的时候创建连接。 SessionPool:连接池。 SendHandler:处理类。...每一个port可建立3个长连接。因此。...;import org.apache.mina.core.service.IoConnector;import org.apache.mina.core.session.IoSession;import...;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.session.IoSession;import
连接的建立是通过Nio的SocketChannel进行。...这点也正是mina的优势,如果直接用Nio编写,则需要自己编写代码来实现类似Processor的功能。...SocketChannel,SessionConfig和IoService.IoHandler的引用) 2.通过IoSession.write 是数据写出的入口 关于线程 ThreadModel 1.x版本的mina...SocketConnectorConfig cfg = new SocketConnectorConfig(); cfg.setThreadModel(ThreadModel.MANUAL); MINA...Connector Thread :一般作为客户端的请求建立链接线程,实现了接口IoService,维持了一个和服务器端Acceptor的一个链接,线程数量就是创建SocketConnector 的数量 Mina
Apache Mina经常用作: 1)NIO框架库 2)客户端/服务器通信框架库 3)网络Socket通信库 Apache Mina还伴随有不少子项目: 1)Asyncweb 构建于Apache Mina....htm 二、Apache Mina下载 下载最新的Mina v2.0.8版 地址见:http://mina.apache.org/mina-project/downloads.html 三、用Mina...1、先决条件 Apache Mina 2.0.8 Core JDK 7 SLF4J+LOGBACK 2、项目依赖包 mina-core-2.0.8.jar slf4j-api-1.6.6.jar 3、...privatestatic final int PORT = 9123; publicstatic void main(String[] args){ //监听连接的对象...; importorg.apache.mina.core.session.IdleStatus; importorg.apache.mina.core.session.IoSession; public
以一个例子实现了mina客户端和服务端的通讯,现在通过源码来了解建立连接和通讯的过程(基于tcp/ip的实现)。...IoAcceptor用来接受连接,与客户端进行通讯。IoConnector用来发起连接,与服务端进行通讯。...HelloWorld例子里面实现的是基于TCP/IP协议的通讯,用了mina默认的实现类NioSocketAcceptor和NioSocketConnector。...NIO的selector开始接收请求 Java代码 selector.wakeup(); 小结: 通过解析NioSocketAcceptor的构造方法,bind()等代码大概了解了mina服务端初始化相关的一些信息...,同时涉及了mina框架相关的IoProcessorIoSessionIoServiceListener等,在下一篇文章中会再做进一步的分析接收到最终的处理请求的过程。
前言: 找了篇文章看了看,nio框架数Mina用的最多!...org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...null; BufferedReader br2 = null; public Client2() { try { // Socket()方法可以连接某个服务器...是该服务器的端口号 s = new Socket("127.0.0.1", 9999); while (true) { // 连接成功...pw.println(str); if (str.equals("byebye")) { System.out.println("客户端关闭连接
一、mina简介 mina框架是对nio进行的一个封装,可用于java的网络编程,包括TCP/IP和UTP/IP编程,主要屏蔽了网络通信的一些细节,对socket进行封装,并且是用nio的一个实现框架...; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...; import org.apache.mina.core.service.IoConnector; import org.apache.mina.core.session.IoSession; import...org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.LineDelimiter...; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus
什么是Mina框架 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。...Mina主页 下载地址 为什么使用Mina? 传统socket:阻塞式通信 每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。...这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非常有效,但是如果对每一个连接都产生一个线程的无疑是对系统资源的一种浪费,如果连接数较多将会出现资源不足的情况。...; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; /**...写的客户端 //客户端使用mina public class MinaClient { public static void main(String[] args) throws Exception{
当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。...MINA的几个重要接口: IoServiece :这个接口在一个线程上负责套接字的建立,拥有自己的 Selector,监听是否有连接被建立。...IoSession :当前客户端到服务器端的一个连接实例。 IoHandler :这个接口负责编写业务逻辑,也就是接收、发送数据的地方。这也是实际开发过程中需要用户自己编写的部分代码。...throws Exception { super.exceptionCaught(session, cause); session.close(true); } /** * 有新连接是触发...Exception { System.out.println("session open for " + iosession.getRemoteAddress()); } /** * 连接被关闭是触发
2.MINA框架的常用类 类NioSocketAcceptor用于创建服务端监听; 类NioSocketConnector用于创建客户端连接; 类IoSession用来保存会话属性和发送消息; 类IoHandlerAdapter...throws Exception { System.out.println(“message=” + message);// 显示接收到的消息 } } 接着定义MinaTimeClient类用于连接服务端...,并向服务端发送消息: public class MinaTimeClient { public static void main(String[] args) { // 创建客户端连接器....cf.awaitUninterruptibly();// 等待连接创建完成 cf.getSession().write(“hello”);// 发送消息 cf.getSession().write(“...quit”);// 发送消息 cf.getSession().getCloseFuture().awaitUninterruptibly();// 等待连接断开 connector.dispose();
Mina各组件介绍上一篇文章已经系统的介绍了Mina的运行流程,Apache推出的Mina性能上很是高效,上章节我们知道内部有很多的类,各个类之间的依赖也是很多,他们之家都是相互依赖。...本篇就当是Mina的文档了。...对于TCP 连接来说,连接被接受的时候调用,但要注意此时TCP 连接并未建立,此方法仅代表字面含义,也就是连接的对象IoSession 被创建完毕的时候,回调这个方法。...void exceptionCaught(IoSession session, Throwable cause) 这个方法在你的程序、Mina...那么如果我想在连接成功之后执行一些事情(譬如:获取连接成功后的IoSession对象),该怎么办呢?
IoSession Session可以理解为服务器与客户端的特定连接,该连接由服务器地址、端口以及客户端地址、端口来决定。...Session是服务器端对这种连接的抽象,MINA对其进行了封装,定义了IoSession接口,用来代表客户端与服务器的连接,在服务器端来 指代客户端,实现对客户端的操作、绑定与客户端有关的信息与对象。...Event MINA可以看成是事件驱动的。通常在网络通讯中,可以将整个过程划分为几个基本的阶段,如建立连接、数据通信、关闭连接。...因此,如果从事件发生的角度看的话,就可以在MINA中将通信看成由一个建立链接(sessionCreated 和 sessionOpened )、多个数据接收和发送、一个关闭连接事件以及多个Idle事件等...MINA 基本类的描述 在介绍架构之前先认识几个接口: IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例
术语表 1.了解Mina&Rake Mina Deployer和自动化工具 RAKE - Ruby Make 2.获得Mina 准备系统 设置Ruby环境和Rails 安装Mina 3.使用Mina 启动...Mina将这些基于RAKE的编程文件转换为Bash脚本,连接到已定义的远程服务器并执行它们。 它实际上运行非常快,并且可能和它的类型工具一样快,因为它只是连接到服务器并运行Bash程序。...的安装,让我们让RVM下载并安装Ruby版本2.1.0: rvm reload rvm install 2.1.0 由于Rails首先需要一个JavaScript解释器才能工作,我们还需要设置Node.js...安装Mina 有几种方法可以下载Mina,其中最简单的方法是使用RubyGems。...运行以下命令下载并安装Mina: gem install mina 使用Mina 在将mina引入项目时,首先需要在项目目录中启动mina。
安装驱动 本教程使用了定制的 cnpm 命令进行安装: $ cnpm install mysql 连接数据库 在以下实例中根据你的实际配置修改数据库用户名、及密码及数据库名: test.js 文件代码:...throw error; console.log('The solution is: ', results[0].solution); }); 执行以下命令输出结果为: $ node test.js...The solution is: 2 数据库连接参数说明: 参数 描述 host 主机地址 (默认:localhost) user 用户名 password 密码 port 端口号 (默认:3306)...database 数据库名 charset 连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写) localAddress 此IP用于TCP连接(可选) socketPath...连接到unix域路径,当使用 host 和 port 时会被忽略 timezone 时区(默认:'local') connectTimeout 连接超时(默认:不限制;单位:毫秒) stringifyObjects
err, result) { if (err) throw err; console.log(result); db.close(); }); }); 连接操作...mongoDB 不是一个关系型数据库,但我们可以使用 $lookup 来实现左连接。
这里以mina整合springMVC为例: //springMVC的配置: ...-- 自定义的 字符编码类 org.springboot.mina.codec.ICodeFactory--> <bean class="org.springboot.<em>mina</em>.codec.WebSocketCodecFactory...window) { socket = new MozWebSocket(url); } } catch (e) { console.error(e); } //<em>连接</em>成功时触发...ioSession) throws Exception { return decoder; } 验证:启动tomcat,访问 http://localhost/to-chat.do <em>连接</em>成功的日志
mina有自带的解析http数据包的解码类。...可以使用maven配置一下内容获取源码: org.apache.mina mina-http 3.0.0-M2 或者下载mina的源码包,查看org.apache.mina.http.HttpServerDecoder...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.CumulativeProtocolDecoder...; import org.apache.mina.filter.codec.ProtocolDecoderOutput; import org.apache.mina.filter.codec.textline.LineDelimiter
),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。...-- mina核心源码 --> org.apache.mina mina-core...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.executor.ExecutorFilter...(5.)IoSession:是对底层连接(服务器与客户端的特定连接,该连接由服务器地址、端口以及客户端地址、端口来决定)的封装,一个IoSession对应于一个底层的IO连接(在Mina中UDP也被抽象成了连接...通过IoSession,可以获取当前连接相关的上下文信息,以及向远程peer发送数据。发送数据其实也是个异步的过程。发送的操作首先会逆向穿过IoFilterChain,到达IoService。
url = "mongodb://localhost/runoob"; MongoClient.connect(url).then((conn) => { console.log("数据库已连接...数据库操作错误"); }).finally(() => { conn.close(); }); }).catch((err) => { console.log("数据库连接失败...const url = "mongodb://localhost/"; MongoClient.connect(url).then((conn) => { console.log("数据库已连接...err.message); }).finally(() => { conn.close(); }); }).catch((err) => { console.log("数据库连接失败...var conn = null; try { conn = await MongoClient.connect(url); console.log("数据库已连接
本章节我们将为大家介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作。 如果你还没有 MongoDB 的基本知识,可以参考我们的教程:MongoDB 教程。...如果数据库不存在,MongoDB 将创建数据库并建立连接。...插入数据 以下实例我们连接数据库 runoob 的 site 表,并插入一条数据条数据,使用 insertOne(): var MongoClient = require('mongodb').MongoClient...throw err; console.log("文档插入成功"); db.close(); }); }); 执行以下命令输出就结果为: $ node test.js
首先使用npm install mysql var mysql = require('mysql'); var conn = mysql.createConne...
领取专属 10元无门槛券
手把手带您无忧上云