Content Table

安装 CAS-Server

CAS 是中央认证服务 Central Authentication Service 的简称,最初由耶鲁大学的 Shawn Bayern 开发,后由 Jasig 社区维护,经过十多年发展,目前已成为影响最大、广泛使用的、基于 Java 实现的、开源 SSO 解决方案。

2012 年,Jasig 和另一个有影响的组织 Sakai Foundation 合并,组成 Apereo。Apereo 是一个由高等学术教育机构发起组织的联盟,旨在为学术教育机构提供高质量软件,当然很多软件也被大量应用于商业环境,譬如 CAS。目前 CAS 由 Apereo 社区维护。

CAS Server 的安装并不是很容易,因为官网不再提供二进制包下载,需要我们下载 CAS 源码并自己编译,最新版的 CAS 使用 Gradle 编译,下面介绍 CAS Server 的安装

Tomcat 启用 https

开发时需要用到 SSO 单点登录,一般都会用 Jasig 的 CAS,而 CAS Server 默认要求它运行的服务器启用 https(CAS Client 不强制要求使用 https),所以就有必要在 Tomcat 中启用 https 了。下面介绍在开发环境中自己生成 ssl 的证书,并在 Tomcat 里启用 https。

集成自定义类型到 MetaType 系统

Qt 提供的类型如 QString, QSize 和 QColor 等可以存储在 QVariant 里,并且作为 QObject 及其子类的属性使用,例如调用 obj.setProperty("name", QString("道格拉斯·狗")), obj.property("name"),也可以在信号槽中作为参数传递。我们自定义的类如果也想要这么使用,需要使用 Q_DECLARE_METATYPE 和 qRegisterMetaType 来注册后才行。

ActiveMQ 的 MQTT

MQTT 有很多开源的实现,org.fusesource.mqtt-client 是其中之一,使用起来也比较简单,Github 地址为 https://github.com/fusesource/mqtt-client,而且其实现了连接断开后自动重连的机制

下面的程序使用 MQTT-Client 实现:

  • Publisher
  • Subscriber
  • PublisherAndSubscriber
  • FutureMqttPublisher

实际使用中,即要向 ActiveMQ 发送消息,同时也要从 ActiveMQ 订阅消息,所以参考下面的 Demo PublisherAndSubscriber 更为实用.

OkHttp

在 Java 平台上,我们一般使用 Apache HttpClient 作为通常的 HTTP 客户端。Square 公司开源的 OkHttp 是一个更先进的专注于连接效率的 HTTP 客户端。OkHttp 提供了对 HTTP/2 和 SPDY 的支持,并提供了连接池,GZIP 压缩和 HTTP 响应缓存功能。OkHttp 的 API 接口也更加的简单实用。可以将 OkHttp 作为 Apache HttpClient 的升级与替换,本文将对其进行详细的介绍,更详细内容请参考 https://www.ibm.com/developerworks/cn/java/j-lo-okhttp

Spring 集成 Groovy

Groovy 是用于 Java 虚拟机的一种敏捷的动态语言,很吸引人的一点是 Java 代码完全可以在 Groovy 里运行,Groovy 脚本可以动态的加载运行,例如网络游戏,为了游戏的平衡,每运行一段时间就会调整角色的攻击力计算公式(C, C++写的游戏一般会用 Lua 作为计算脚本),如果是写在 Java 代码里,每次更新都要把主程序重新编译发布,代价是很大的,但是如果使用 Groovy 来提供计算,则只需要更新发布 Groovy 脚本(文本文件) 即可,估计也就是几 K。

Ehcache

Ehcache 使用起来很简单,是一个 key/value 容器,和 Map 很像,只不过功能比 Map 丰富,能够限定缓存中元素的个数,自动删除超时的元素,把元素持久化到硬盘等:

  • 添加元素到缓存: cache.put(new Element("username", "Biao"))
  • 从缓存获取元素: cache.get("username")
  • 从缓存删除元素: cache.remove("username")
  • CacheManager 管理多个 Cache,每个 Cache 里又管理多个缓存的元素 Element

FlatBuffers 入门之 Java + Qt 版

FlatBuffers 是一个 Google 开源的跨平台序列化工具,支持 C, C++, C#, Go, Java, JavaScript, PHP, Python 等,好强大的感觉。

FlatBuffers is an efficient cross platform serialization library for C++, C#, C, Go, Java, JavaScript, PHP, and Python. It was originally created at Google for game development and other performance-critical applications.

什么时候使用 FlatBuffers?

  • FlatBuffers 的反序列化速度非常快,在交互很频繁的场景下,例如游戏服务器中它的优势非常大
  • 使用 TcpSocket 通讯时序列化消息的 payload,尤其时涉及到多语言,多平台时