Слияние кода завершено, страница обновится автоматически
public class SampleClient extends AbstractBizSocket {
public SampleClient(Configuration configuration) {
super(configuration);
}
@Override
protected PacketFactory createPacketFactory() {
return new SamplePacketFactory();
}
}
public static void main(String[] args) {
SampleClient client = new SampleClient(new Configuration.Builder()
.host("127.0.0.1")
.port(9103)
.readTimeout(TimeUnit.SECONDS, 30)
.heartbeat(60)
.build());
client.getInterceptorChain().addInterceptor(new Interceptor() {
@Override
public boolean postRequestHandle(RequestContext context) throws Exception {
LoggerUtil.i("Обнаружен запрос postRequestHandle: " + context);
return false;
}
@Override
public boolean postResponseHandle(int command, Packet responsePacket) throws Exception {
LoggerUtil.i("Получен пакет postResponseHandle: " + responsePacket);
return false;
}
});
try {
// Соединение
client.connect();
// Запуск повторного подключения после разрыва соединения
client.getSocketConnection().bindReconnectionManager();
// Включение пульсации
client.getSocketConnection().startHeartBeat();
} catch (Exception e) {
e.fillInStackTrace();
}
// Регистрация уведомления для получения уведомлений от сервера
client.subscribe(client, SampleCmd.NOTIFY_PRICE.getValue(), new ResponseHandler() {
@Override
public void sendSuccessMessage(int command, ByteString requestBody, Packet responsePacket) {
LoggerUtil.i("Команда: " + command + ", тело запроса: " + requestBody + ", ответный пакет: " + responsePacket);
}
@Override
public void sendFailureMessage(int command, Throwable error) {
LoggerUtil.i(command + ", ошибка: " + error);
}
});
// Отправка запроса один-к-одному
String json = "{\"productId\": \"1\", \"isJuan\": \"0\", \"type\": \"2\", \"sl\": \"1\"}";
client.request(new Request.Builder().command(SampleCmd.CREATE_ORDER.getValue()).utf8body(json).build(), new ResponseHandler() {
@Override
public void sendSuccessMessage(int command, ByteString requestBody, Packet responsePacket) {
LoggerUtil.i("Команда: " + command + ", тело запроса: " + requestBody + ", прикрепление: " + "ответный пакет: " + responsePacket);
}
@Override
public void sendFailureMessage(int command, Throwable error) {
LoggerUtil.i(command + ", ошибка: " + error);
}
});
// Если вы хотите использовать rxjava, также поддерживается, предоставляется класс, подобный сервису retrofit, создаваемому через динамический прокси
BizSocketRxSupport rxSupport = new BizSocketRxSupport.Builder()
.requestConverter(new JSONRequestConverter())
.responseConverter(new JSONResponseConverter())
.bizSocket(client)
.build();
SampleService service = rxSupport.create(SampleService.class);
JSONObject params = new JSONObject();
try {
params.put("pageSize", "10000");
} catch (JSONException e) {
e.fillInStackTrace();
}
// Пример rxjava, использование rxjava2 требует изменения Subscriber
service.queryOrderList(params).subscribe(new Subscriber<JSONObject>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(JSONObject jsonObject) {
LoggerUtil.i("Ответ rx: " + jsonObject);
}
});
// Блокировка основного потока, предотвращение завершения программы, можно представить как Looper в ohos
while (true) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.fillInStackTrace();
}
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )