介绍 - 图1

image.png image.png 介绍 - 图4

Cloudopt Next 是一个非常轻量级且现代的、基于 Kotlin 编写的全栈开发框架,同时支持 Java 和 Kotlin,您可以处理Url的解析,数据的封装,Json的输出等等,从根本上减少开发时间、提升开发体验。

Cloudopt Next 主要拥有以下特点:

简单 极简设计,几乎不要任何配置,不依赖 Tomcat、Jetty 等 Web 容器。

异步 基于 vertx 轻松实现高性能的异步服务。

扩展 支持 vertx 体系的各种组件,同时支持通过插件扩展功能,官方也提供了大量好用的插件。

中文 全中文文档、中文社区,帮助中文开发者快速上手。

GitHub:

https://github.com/cloudoptlab/cloudopt-next

开源中国:

https://gitee.com/cloudopt/cloudopt-next
[

](https://gitee.com/cloudopt/cloudopt-next)

性能

测试电脑的 CPU 是 2.2 GHz 六核 Intel Core i7,内存为 16 GB 2400 MHz DDR4。

吞吐量参数为用户数 10,循环 10000 次。

框架名称 吞吐量
Cloudopt Next 20267.5/sec
Spring Boot 10698.2/sec
Flask 440.8/sec

根据性能测试结果:Cloudopt Next 的性能是 Flask 的 50 倍,是 Spring Boot 的两倍。

示例

您可以通过访问Cloudopt Next的官网来查看文档,也可以前往Example查看简单的示例。

路由

让我们来看看一个简单的基于Cloudopt Next的路由:

  1. @API("/")
  2. class IndexController : Resource() {
  3. @GET
  4. fun get(){
  5. renderHtml(view = "index")
  6. }
  7. }
  1. @API(value = "/")
  2. public class IndexController extends Resource {
  3. @GET
  4. public void get(){
  5. View v = new View();
  6. v.setView("index");
  7. renderHtml(v);
  8. }
  9. }

启动

  1. fun main(args: Array<String>) {
  2. NextServer.run()
  3. }
  1. public static void main(String args[]) {
  2. NextServer.run();
  3. }

超好用的协程

  1. var value = await<String>{handler->
  2. handler.complete(RedisManager.sync().get("key"))
  3. }

WebSocket

  1. @WebSocket("/websocket")
  2. class WebSocketHandler : WebSocketResource {
  3. override suspend fun onConnectionSuccess(websocket: ServerWebSocket) {
  4. websocket.writeTextMessage("Connection successful!") {
  5. println("The event of after write.")
  6. }
  7. val buffer: Buffer = Buffer.buffer().appendInt(123).appendFloat(1.23f)
  8. websocket.writeBinaryMessage(buffer) {
  9. println("The event of after write binary.")
  10. }
  11. }
  12. override suspend fun onConnectionFailure(throwable: Throwable) {
  13. }
  14. override suspend fun onConnectionComplete(websocket: ServerWebSocket) {
  15. }
  16. override suspend fun onFrameMessage(frame: WebSocketFrame, websocket: ServerWebSocket) {
  17. }
  18. override suspend fun onTextMessage(message: String, websocket: ServerWebSocket) {
  19. println(message)
  20. websocket.writeTextMessage("This is the message from the server!")
  21. }
  22. override suspend fun onBinaryMessage(buffer: Buffer, websocket: ServerWebSocket) {
  23. }
  24. override suspend fun onPong(buffer: Buffer, websocket: ServerWebSocket) {
  25. }
  26. override suspend fun onException(throwable: Throwable, websocket: ServerWebSocket) {
  27. throwable.printStackTrace()
  28. if (!websocket.isClosed) {
  29. websocket.close()
  30. }
  31. }
  32. override suspend fun onDrain(websocket: ServerWebSocket) {
  33. }
  34. override suspend fun onEnd(websocket: ServerWebSocket) {
  35. println("Connection was closed.")
  36. }
  37. }

SockJS

  1. @SocketJS("/socket/api/*")
  2. class SocketController : SocketJSResource {
  3. override fun handler(userSocketConnection: SockJSSocket) {
  4. println(userSocketConnection)
  5. userSocketConnection.handler {message->
  6. println(message)
  7. userSocketConnection.write("Hello world!")
  8. }
  9. }
  10. }

插件

  1. fun main(args: Array<String>) {
  2. NextServer.addPlugin(TestPlugin())
  3. NextServer.addPlugin(EventPlugin())
  4. NextServer.run()
  5. }

寻求帮助

在使用Cloudopt Next的过程中遇到了问题?您可以通过下面途径寻求帮助:

  • 请关注我们的推特,以便获得最新的信息。
  • 请仔细检查参考文档,查看具体的代码案例或者是常见问题。
  • 如果您在升级版本以后遇到问题,可以查看 Wiki 中的升级说明。
  • 请发送邮件到 support@cloudopt.net
  • 请在 GitHub 发送 Issue 提交您的问题,我们将尽快为您解答。
  • 如果您在中国,还可以加入交流QQ群:557692142。

报告问题

Cloudopt Next使用GitHub的问题跟踪系统,以记录bug和特性请求。如果您想提出一个问题,可以参考下面的建议:

  • 请您先尝试搜索一下是否有相关的问题。
  • 请尽可能的提供详细的错误信息或者报告,包括正在使用的Cloudopt Next的版本、Java版本或者Kotlin版本等等。

许可协议

Cloudopt Next 是一个开源项目,遵循 Apache 2.0许可协议

旧版文档

2.x
https://github.com/cloudoptlab/cloudopt-next/releases/tag/2.0.8.1-BETA

公众号

关注公众号,第一时间获得更新资讯。
扫码_搜索联合传播样式-白色版.png