* Поскольку это обертка над Netty, то зависимость от Netty обязательно присутствует.
public class App {
public static void main(String[] args) {
init();
// Инициализация HTTP сервиса
HttpServer httpServer = new HttpServer();
// Аргументы: порт, путь до пакета с контроллерами (пакет с входными точками),
// максимальный размер запроса (если превышено, будет отправлен код ошибки 400),
// URL для WebSocket,
// класс обратного вызова для WebSocket
// Запуск HTTP сервиса
httpServer.start(8080, "com.shareData.chainMarket.test", 1024,
null, null);
// Для запуска WebSocket сервиса передайте последние два аргумента
//httpServer.start(8080, "com.shareData.chainMarket.test", 1024,
//"ws://127.0.0.1:8080/websocket", new MyWebSocket());
}
}
``` public static void init() {
// Enable the SSL service, if enabled, the server will only accept HTTPS requests,
// if disabled — only HTTP
// By default, the SSL service is not enabled
HttpsSetting.sslEnabled = false;
HttpsSetting.keystorePath = "Path to the SSL certificate on disk";
HttpsSetting.certificatePassword = "SSL certificate password";
HttpsSetting.keystorePassword = "SSL certificate password"; // These two values are equivalent
Config.setFileMaxLength(6553666); // Maximum file size for upload, bytes
}}
// В указанном пути создайте класс контроллера // Аннотация Central представляет собой виртуальное имя пути, которое используется внутри URL // Таким образом, эти два адреса будут /login/wxLogin и /login/getCommunity соответственно // Различий между post, get, message нет, message является частью тела POST запроса, // map представляет собой пары ключ-значение после знака вопроса (?) // return - это содержание ответа
@Central(url = "/login")
public class Login {
@Central(url = "/wxLogin")
public String wxLogin(String message, Map<Object, Object> map) { // Логин через WeChat Mini Program
return wxLogin(message);
}
}
@Центральный(url = "/getCommunity")
public String приземлиться(String сообщение, Map<Object, Object> карта) { // Получить все сообщества
return getSmallCity();
}
// Если это FORM форма отправки данных, пожалуйста используйте List<FileAndName> формы для получения
@Центральный(url = "/список")
public String список(List<FileAndName> формы) {
return "a";
}
}
// List<FileAndName>
// FileAndName представляет собой пару ключ-значение, а LIST — это коллекция таких пар
// FileAndName имеет три параметра
// name - имя ключа
// text - текстовое значение
// inputStream - двоичное значение файла
// Обратите внимание, что текстовое значение и двоичное значение взаимоисключающие, если одно из них существует, другое должно быть null.
// После чтения байтов из inputStream нет необходимости закрывать поток байт, он будет автоматически закрыт после возврата.
public class FileAndName {
private InputStream inputStream;
private String name;
``````markdown
private String text;
}
### Сервис WEBSOCKET
public class MyWebSocket extends WebSocketBack {
//Если вы хотите использовать WEBSOCKET, создайте обратный вызов класс
//И обязательно расширяйте класс WebSocketBack и переопределяете методы active и getText
@Override
public void active(ChannelHandlerContext ctx) {
//Когда пользователь выполняет рукопожатие WEBSOCKET, активируется, один пользователь составляет одно соединение, которое выполнится только один раз
System.out.println("активировано======");
}
@Override
public String getText(String message, ChannelHandlerContext ctx) {
//При получении сообщения через WEBSOCKET
//Зарегистрировать канал связи с основным ключом
WebSocketManager.register(1, ctx);
//С помощью основного ключа сервер может отправлять информацию пользователю
WebSocketManager.putMessage(1, "Отправить сообщение");
return "ок";
}}
##### Если у вас возникли вопросы, свяжитесь с автором Q: 794757862, или просмотрите примеры в пакете com.shareData.chainMarket.test
##### Пакет машинного зрения доступен для скачивания по адресу https://github.com/thenk008/ImageMarket
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )