# Magician
**Repository Path**: fysoft2006/Magician
## Basic Information
- **Project Name**: Magician
- **Description**: Magician 是一个异步非阻塞的网络编程包,支持Http, WebSocket, UDP等协议
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://magician-io.com
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 8
- **Created**: 2021-04-21
- **Last Updated**: 2021-04-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
一个异步非阻塞的网络编程包
## 项目简介
Magician 是一个异步非阻塞的网络编程包,支持Http, WebSocket, UDP等协议
## 运行环境
JDK11+
## 导入依赖
```xml
com.github.yuyenews
Magician
最新版
org.slf4j
slf4j-jdk14
1.7.12
```
## 创建http服务
### 一、创建Handler
```java
public class DemoHandler implements MagicianHandler {
@Override
public void request(MagicianRequest magicianRequest) {
// 响应数据
magicianRequest.getResponse()
.sendJson(200, "{'status':'ok'}");
}
}
```
### 二、创建服务
```java
Magician.createHttpServer().bind(8080)
.httpHandler("/", new DemoHandler())
.start();
```
### 也可以合并为一步
```java
Magician.createHttpServer().httpHandler("/", req -> {
req.getResponse()
.sendJson(200, "{'status':'ok'}");
}).bind(8080).start();
```
## 创建WebSocket
只需要在创建http服务的时候加一个handler即可
```java
Magician.createHttpServer().bind(8080)
.httpHandler("/", new DemoHandler())
.webSocketHandler("/websocket", new DemoSocketHandler())
.start();
```
## 创建UDP服务
```java
Magician.createUdpServer()
.handler(outputStream -> {
// outputStream 是ByteArrayOutputStream类型的
// 它是客户端发过来的数据,自行解析即可
}).bind(8088).start();
```
除了这种写法,也可以单独创建handler,在这里add进去
## 开发资源
- 开发文档: [http://magician-io.com/docs/index.html](http://magician-io.com/docs/index.html)
- 使用示例: [https://github.com/yuyenews/Magician-Example](https://github.com/yuyenews/Magician-Example)