ActFramework R1.4.0 带来 WebSocket 的支持

#17 WebSocket 支持

ActFramework 终于支持 WebSocket 了

聊天室应用:

@WsAction("msg")
public void onMessage(String message, WebSocketContext context) {
    context.sendToPeers(message);
}

Echo 应用:

@WsAction("echo")
public void onMessage(String message, WebSocketContext context) {
    context.sendToSelf(message);
}

关于更详细的 websocket 支持, 可参见 官方文档

#227 支持控制台颜色输出

通过配置 logback.xml 文件 (例子在这里) ActFramework 可以输出带颜色的 log 信息:

#228 生成 ASCII 字符的 favicon

如果 ActFramework 在 /resources/asset//resources/asset/img/resources/asset/image 目录下找到 favicon.pngfavicon.ico 文件,将会在应用启动的时候打印 ASCII 版的 favicon,例如:

#228 将带有 @Stateless 注解的类加入到应用的 singleton 注册表中

如果一个类上标注有 @Stateless 注解,ActFramework 在启动的时候会将该类加入 Singleton 注册表里

#212 简化 header session mapper 的配置

有时候没法依赖 cookie 来保存 session 数据, 这个时候我们需要将 session 数据映射到其他方式,比如 http header 里。在以前的版本中使用 header session mapper 不是特别方便:

  1. 实现 header session mapper 类
package com.mycomp;

public class MyAppSessionMapper extends act.util.SessionMapper.HeaderSessionMapper {
    public SessionMapper() {
        super("X-MyApp-");
    }
}
  1. 在 app properties 文件中加入:
session.mapper=com.mycomp.MyAppSessionMapper

R1.4.0 简化了上面的步骤,现在我们只需要在配置文件中加入下面一行即可:

session.mapper.header.prefix=X-MyApp-

#226 支持定制 banner 文字

如果框架在 /resources/ 找到一个名为 act_banner.txt 的文件,将会使用该文件的内容来作为应用启动时的 banner text 输出,例如

#219 支持 Singleton 的延迟加载

现在开发人员可以使用 @Lazy 注解和 @Singleton 注解一起表示一个 Singleton 类,但是不需要在应用启动过程之加载到 Singleton 注册表中,而是当第一次被使用的时候实例化并加载到 Singleton 注册表, 例如:

@Lazy
@Singleton
public class MySingletonClass {
}

点击 https://github.com/actframework/actframework/milestone/7?closed=1 查看 R1.4.0 的 issue 完整清单

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏james大数据架构

资源等待类型sys.dm_os_wait_stats

动态管理视图  sys.dm_os_wait_stats  返回执行的线程所遇到的所有等待的相关信息。可以使用该聚合视图来诊断 SQL Server 以及特定查...

2287
来自专栏魏琼东

分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载

一、分布式消息总线以及基于Socket的实现      在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给...

4187
来自专栏向治洪

Android 使用android-support-multidex解决Dex超出方法数的限制问题

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的...

3578
来自专栏惨绿少年

磁盘管理 之 parted命令添加swap,文件系统

第1章 磁盘管理 1.1 必须要了解的。 1.1.1 ps aux 命令中 RSS 与VSZ的含义 rss 进程占用的物理内存的大小 单位:kb ;   ...

2780
来自专栏实战docker

修改,编译,GDB调试openjdk8源码(docker环境下)

在上一章《在docker上编译openjdk8》里,我们在docker容器内成功编译了openjdk8的源码,有没有读者朋友产生过这个念头:“能不能修改open...

5649
来自专栏坚毅的PHP

jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www

tcpflow以流为单位分析请求内容,非常适合服务器端接口类服务查问题 这次遇到的问题跟支付宝支付后的回调post结果有关 淘宝的代码例子: publi...

6095

访问数据 - 反应方式(Vert.x入门的第4部分)

原文地址:https://dzone.com/articles/accessing-data-the-reactive-way

1.2K4
来自专栏岑玉海

Hadoop源码系列(一)FairScheduler申请和分配container的过程

1、如何申请资源 1.1 如何启动AM并申请资源 1.1.1 如何启动AM val yarnClient = YarnClient.createYarnClie...

4514
来自专栏lgp20151222

rabbit的简单搭建,java使用rabbitmq queue的简单例子和一些坑

由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面。

3831
来自专栏Linux驱动

15.linux-LCD层次分析(详解)

如果我们的系统要用GUI(图形界面接口),这时LCD设备驱动程序就应该编写成frambuffer接口,而不是像之前那样只编写操作底层的LCD控制器接口。 什么是...

2726

扫码关注云+社区

领取腾讯云代金券