`
文章列表
Netty+WebSocket实现简单网页群聊 这两天看了下WebSocket的RFC文档,对WebSocket协议有了基本的认识,顺便写了篇博客做点笔记  WebSocket 协议。   例子说明:每个网页一个websocket连接,点发送消息后,消息会发送给除了自己之外的其它在线的websocket客户端,简单实现群聊   服务端 采用Netty实现,Netty版本是4.1.2.Final.     服务端共有以下4个类:    WebSocketServer实现IHttpService和IWebSocketService,WebSocketServerHandler持 ...
Javassist实现动态代理   动态代理模式简述:之所以会出现代理这种模式就是因为我们常有这么一种需求:在被代理类的方法调用前后执行一些其它的逻辑,这些逻辑不适合由被代理类来实现,那这些逻辑谁来实现?当然是代理类。那代理类是谁?从哪里来?代理类是我们利用字节码生成工具动态创建的,然后利用反射实例化而得到代理对象。   tips:这篇文章讲的不是动态代理模式的思想而是怎么实现(简单实现)一个和java.lang.reflect.Proxy类相似的类。   按照JDK动态代理的套路来,先定义一个InvocationHandler来给客户端添加代理的逻辑(这个类和JDK中的一模一样) ...
WebSocket 协议 WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。在这之前都是客户端主动请求服务端,一请求一应答,很多时候实现消息更新都是采用ajax轮询,有延迟,有了WebSocket双方都可以 ...
Java 获取当前JVM进程ID   public static final int jvmPid() { try { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); Field jvm = runtime.getClass().getDeclaredField("jvm"); jvm.setAccessible(true); VMManagement mgmt = (VMManagement) jvm.get(runtime); Method pi ...
Java NIO时间服务   这篇文章内容是另一篇文章《Java 实现基于Redis的分布式锁》的分支.    时间服务包括客户端和服务端, 服务端监听请求 ,若是时间请求,则返回当前服务器的时间, 各个客户端(分布式锁) 都从给服务器获取时间,已达到全局时间一致。   共三个类 TimeServer、 TimeClient和TimeClientException,下面是源码:   TimeServer.java: package cc.lixiaohui.lock.time.nio.server; import java.io.IOException; import ...
Linux SSH公钥认证配置   ssh支持两种认证方式:密码认证和公钥认证。若没有配置公钥认证,则每次ssh连接时都需要输入密码,不仅麻烦而且还不安全,因此推荐配置公钥认证,只需在配置时输入一次密码,之后ssh连接就无需输 ...
Linux下用expect实现ssh自动登录并执行脚本   expect不是系统自带的,需要安装:         yum install expect 装完后才可执行以下脚本。    ssh密码认证的登陆脚本: #!/bin/bash # 匹配提示符 CMD_PROMPT="\](\$|#)" # 要执行 ...
Java 原始数据类型 Java共7种原始类型   类型 占用字节 默认值 取值范围 boolean 4 false false,true byte 1 0 -2^7 ~ 2^7-1 short 2 0 -2^15 ~ 2^15-1 int 4 0 -2^31 ~ 2^31-1 long 8 0 -2^63 ~ 2^63-1 float 4 0 -2^128 ~ 2^127 double 8 0 -2^1024 ~ 2^1023   1. 为什么boolean是4个字节?boolean ...
 Http协议格式   一、请求报文           包括请求行、请求头和请求数据,具体格式如下:    请求方法:           GET: 请求指定的页面信息,并返回实体主体。        HEAD: 只请求页面的首部。        POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。        PUT: 从客户端向服务器传送的数据取代指定的文档的内容。        DELETE: 请求服务器删除指定的页面。        OPTIONS: 允许客户端查看服务器的性能。        TRACE: 请求服务器在响应中的实体主体部分返回所 ...
Socket Options 以下出现中文的地方并不是对英文的翻译   1. SO_TIMEOUT     单位是毫秒,表示等待客戶端连接的最长时间。     Set a timeout on blocking Socket operations:          ServerSocket.accept();          SocketInputStream.read();          DatagramSocket.receive();     With this option set to a non-zero  timeout, a call to accep ...
Java实现组件的生命周期           假如你在写平台或者一个比较大的项目,总会设计到多个模块,模块有大有小,往往模块之前是嵌入式(embbed)的,即小模块由大模块来管理,外层模块控制着里层模块。这时我们为这些组件设 ...
API笔记之java.nio.channels.Selector import java.io.Closeable; import java.io.IOException; import java.nio.channels.spi.SelectorProvider; import java.util.Set; /** * * A multiplexor of {@link SelectableChannel} objects. * <pre> * Selector * ...
API笔记之java.nio.channels.SelectionKey   import java.nio.channels.SelectableChannel; import java.nio.channels.Selector; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; /** * A token representing the registration of a {@link SelectableChannel} with a * {@link Selector}. * ...
Java并发编程之CyclicBarrier的使用   先看javadoc对这个类的说明:A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point. CyclicBarriers are useful in programs involving a fixed sized party of threads that must occasionally wait for each other. The barrier is call ...

ActiveMQ入门示例一

    博客分类:
  • JMS
ActiveMQ入门示例   ActiveMQ有两种模式,点对点和发布/订阅模式,点对点中消息只能被一个消费者消费,而发布订阅中,消息可以被一群消费者消费,很好理解。下面的例子是点对点的      安装ActiveMQ很简单就不说了,客户端使用API只需添加以下依赖: <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.1</version& ...
Global site tag (gtag.js) - Google Analytics