大家好,我希望您过得愉快。
Presentation & Genesis
让我自我介绍一下,现年21岁的GrégoireTAJA对技术充满热情已有约十年的历史。 看到每天复制和粘贴大量的代码总是让我感到恐惧。 同样,当今的超连接性促使我们实现昂贵的客户端-服务器体系结构,或诸如REST之类的WebService,它们虽然价格较低,但很快因WebService无法通知客户端而不发送任何请求而受到限制。 这是AtomicServer的起源。
What is AtomicServer ?
AtomicServer同时具有多个功能,整体上允许以简化的方式实现可定制的客户端-服务器体系结构,并且可以根据需要进行自定义。 首先,将软件用作服务器的基础,并将管理与客户端的所有通信。 其次,客户端的Java库允许管理与服务器的通信。 最后,服务器的库(也是Java)使您有可能在插件中开发特定的功能。 插件可以相互依赖,以实现最大的模块化,从而避免重复代码。
How it's work ?
已经实现了各种概念:
- 指令:允许您在服务器控制台中执行自定义命令。要求:类似于Web服务中的路由,允许客户端向服务器请求某些内容。扳机:允许服务器将特定事件通知客户端。听众:允许服务器拦截不同的事件,例如新客户端的连接或自定义数据包的接收。
Example
This is how to send & receive a json packet with AtomicServer :
/**** Send Packet from server side ****/
// 1. Create json to send with javax.json
JsonObject json = Json.createObjectBuilder()
.add("message", "Hello World")
.add("type", "INFO")
.build();
// 2. Send the packet to all client
server.broadcastPacket(new JsonPacket(json));
/**** Receive Packet from client side ****/
public class ChatListener implements Listener {
@EventHandler
public void onPacketReceive(PacketReceivedEvent event) {
// Check the type of packet
if (event.getPacket() instanceof JsonPacket) {
// Cast into JsonPacket
JsonPacket jsonPacket = ((JsonPacket)event.getPacket());
// Get JsonObject
JsonObject json = jsonPacket.getJsonValue().asJsonObject();
// Get the data
json.getString("message"); // "Hello World"
json.getString("type"); // "INFO"
}
}
}
而已 !
Project progress
如您所见,这是一个很大的项目。 基本的功能块在那里,您已经可以尝试使用它。 但是,在成为生产项目之前,还有很多事情要做:
- 通信的加密(目前所有内容都还不清楚)。Development of the client library for the main platforms (Node, PHP, Android & iOS).提高插件的安全性(在各自文件夹中包含容器化的插件)。实施单元测试/属性测试。Wiki和文档的改进。根据不同的用户需求添加功能。
该项目当然是开源的(X11许可证),欢迎所有贡献。
非常感谢您抽出宝贵的时间阅读本演示文稿,希望您喜欢这个项目。
我期待您的反馈:)
Website & Forum : https://www.atomicserver.io/
Wiki : https://www.atomicserver.io/wiki
Gitlab : https://gitlab.com/atomic-server/server
Documentation : https://docs.atomicserver.io/