Я собираюсь написать программу на Java, которая подключается к редпитайе и получает данные из веб-сокета. Я успешно могу подключиться к редпитайе с помощью HttpClient. Однако соединение с веб-сокетом не удается. Когда я запускаю приложение в браузере, подключение к веб-сокету завершается успешно. Похоже при подключении к РП запрошенное приложение не запускается. (проверено с помощьюscopegenpro иstreaming_manager). Есть ли у кого-нибудь идеи, что я должен отправить RP, чтобы приложение запустилось?
package redpitaya;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.util.Iterator;
import java.util.List;
import java.util.zip.GZIPInputStream;
import jakarta.websocket.ContainerProvider;
import jakarta.websocket.Endpoint;
import jakarta.websocket.EndpointConfig;
import jakarta.websocket.MessageHandler;
import jakarta.websocket.Session;
import jakarta.websocket.WebSocketContainer;
import jakarta.websocket.RemoteEndpoint.Basic;
public class RPClient {
final static String hostName="192.168.1.1";
final static int port = 9002;
static RPClient clientEndPoint;
Session session;
final static String ApplicationId = "scopegenpro";
final static String type = "run";
public RPClient(URI uri) throws InterruptedException {
HttpClient client = HttpClient.newHttpClient();
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("http://" + hostName + "/" + ApplicationId + "/"))
.GET()
.header("start", ApplicationId)
.header("type", type)
.build();
System.out.println(request.uri().getPath());
HttpResponse response = client.send(request, BodyHandlers.ofString());
List locations = response.headers().allValues("location");
HttpRequest req = response.request();
System.out.println(req);
Iterator locationIterator = locations.iterator();
while (locationIterator.hasNext()) {
System.out.println(locationIterator.next());
}
System.out.println(response.body());
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
Endpoint endpoint = new SocketEndpoint();
session = container.connectToServer(endpoint, uri);
} catch (Exception e) {
e.printStackTrace();
}
while(true) {
Thread.sleep(1000);
}
}
public static void main(String[] args) throws URISyntaxException, InterruptedException {
URI uri = new URI("ws://" + hostName + ":" + port + "/");
clientEndPoint = new RPClient(uri);
}
public class SocketEndpoint extends Endpoint{
@Override
public void onOpen(Session session, EndpointConfig config) {
final Basic remote = session.getBasicRemote();
session.addMessageHandler(InputStream.class, new MessageHandler.Whole() {
public void onMessage(InputStream stream) {
try {
while (stream.available() > 0) {
GZIPInputStream is = new GZIPInputStream(stream);
byte[] gzip = is.readAllBytes();
System.out.println("received: " + new String(gzip));
}
System.out.println();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
@Override
public void onError(Session session, Throwable t) {
System.out.println(session.getQueryString());
System.out.println(t.getMessage());
}
}
}
и maven pom.xml для библиотек:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
redpitaya
client
0.0.1-SNAPSHOT
17
17
UTF-8
9.0.0-RC3
jakarta.platform
jakarta.jakartaee-api
${jakartaee}
org.glassfish.tyrus.bundles
tyrus-standalone-client
2.0.0-M3
javax.websocket
javax.websocket-api
1.1
org.apache.maven.plugins
maven-compiler-plugin
3.1
17
17
и трассировка стека:
jakarta.websocket.DeploymentException: Connection failed.
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket._connect(GrizzlyClientSocket.java:413)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.access$000(GrizzlyClientSocket.java:81)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket$1.call(GrizzlyClientSocket.java:212)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket$1.call(GrizzlyClientSocket.java:208)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.connect(GrizzlyClientSocket.java:226)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.openClientSocket(GrizzlyClientContainer.java:72)
at org.glassfish.tyrus.client.ClientManager$3$1.run(ClientManager.java:647)
at org.glassfish.tyrus.client.ClientManager$3.run(ClientManager.java:696)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.glassfish.tyrus.client.ClientManager$SameThreadExecutorService.execute(ClientManager.java:849)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:493)
at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:355)
at redpitaya.RPClient.(RPClient.java:57)
at redpitaya.RPClient.main(RPClient.java:70)
Caused by: java.net.ConnectException: Connection refused: getsockopt
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:946)
at org.glassfish.grizzly.nio.transport.TCPNIOConnectorHandler.onConnectedAsync(TCPNIOConnectorHandler.java:175)
at org.glassfish.grizzly.nio.transport.TCPNIOConnectorHandler$1.connected(TCPNIOConnectorHandler.java:132)
at org.glassfish.grizzly.nio.transport.TCPNIOConnection.onConnect(TCPNIOConnection.java:220)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:502)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.executeIoEvent(WorkerThreadIOStrategy.java:73)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:66)
at org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:381)
at org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:353)
at org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:319)
at org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:248)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
at java.base/java.lang.Thread.run(Thread.java:840)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -from-java
Подключение к приложению Red Pitaya с Java ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1731069924
Anonymous
Я собираюсь написать программу на Java, которая подключается к редпитайе и получает данные из веб-сокета. Я успешно могу подключиться к редпитайе с помощью HttpClient. Однако соединение с веб-сокетом не удается. Когда я запускаю приложение в браузере, подключение к веб-сокету завершается успешно. Похоже при подключении к РП запрошенное приложение не запускается. (проверено с помощьюscopegenpro иstreaming_manager). Есть ли у кого-нибудь идеи, что я должен отправить RP, чтобы приложение запустилось?
package redpitaya;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.util.Iterator;
import java.util.List;
import java.util.zip.GZIPInputStream;
import jakarta.websocket.ContainerProvider;
import jakarta.websocket.Endpoint;
import jakarta.websocket.EndpointConfig;
import jakarta.websocket.MessageHandler;
import jakarta.websocket.Session;
import jakarta.websocket.WebSocketContainer;
import jakarta.websocket.RemoteEndpoint.Basic;
public class RPClient {
final static String hostName="192.168.1.1";
final static int port = 9002;
static RPClient clientEndPoint;
Session session;
final static String ApplicationId = "scopegenpro";
final static String type = "run";
public RPClient(URI uri) throws InterruptedException {
HttpClient client = HttpClient.newHttpClient();
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("http://" + hostName + "/" + ApplicationId + "/"))
.GET()
.header("start", ApplicationId)
.header("type", type)
.build();
System.out.println(request.uri().getPath());
HttpResponse response = client.send(request, BodyHandlers.ofString());
List locations = response.headers().allValues("location");
HttpRequest req = response.request();
System.out.println(req);
Iterator locationIterator = locations.iterator();
while (locationIterator.hasNext()) {
System.out.println(locationIterator.next());
}
System.out.println(response.body());
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
Endpoint endpoint = new SocketEndpoint();
session = container.connectToServer(endpoint, uri);
} catch (Exception e) {
e.printStackTrace();
}
while(true) {
Thread.sleep(1000);
}
}
public static void main(String[] args) throws URISyntaxException, InterruptedException {
URI uri = new URI("ws://" + hostName + ":" + port + "/");
clientEndPoint = new RPClient(uri);
}
public class SocketEndpoint extends Endpoint{
@Override
public void onOpen(Session session, EndpointConfig config) {
final Basic remote = session.getBasicRemote();
session.addMessageHandler(InputStream.class, new MessageHandler.Whole() {
public void onMessage(InputStream stream) {
try {
while (stream.available() > 0) {
GZIPInputStream is = new GZIPInputStream(stream);
byte[] gzip = is.readAllBytes();
System.out.println("received: " + new String(gzip));
}
System.out.println();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
@Override
public void onError(Session session, Throwable t) {
System.out.println(session.getQueryString());
System.out.println(t.getMessage());
}
}
}
и maven pom.xml для библиотек:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
redpitaya
client
0.0.1-SNAPSHOT
17
17
UTF-8
9.0.0-RC3
jakarta.platform
jakarta.jakartaee-api
${jakartaee}
org.glassfish.tyrus.bundles
tyrus-standalone-client
2.0.0-M3
javax.websocket
javax.websocket-api
1.1
org.apache.maven.plugins
maven-compiler-plugin
3.1
17
17
и трассировка стека:
jakarta.websocket.DeploymentException: Connection failed.
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket._connect(GrizzlyClientSocket.java:413)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.access$000(GrizzlyClientSocket.java:81)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket$1.call(GrizzlyClientSocket.java:212)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket$1.call(GrizzlyClientSocket.java:208)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientSocket.connect(GrizzlyClientSocket.java:226)
at org.glassfish.tyrus.container.grizzly.client.GrizzlyClientContainer.openClientSocket(GrizzlyClientContainer.java:72)
at org.glassfish.tyrus.client.ClientManager$3$1.run(ClientManager.java:647)
at org.glassfish.tyrus.client.ClientManager$3.run(ClientManager.java:696)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.glassfish.tyrus.client.ClientManager$SameThreadExecutorService.execute(ClientManager.java:849)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:493)
at org.glassfish.tyrus.client.ClientManager.connectToServer(ClientManager.java:355)
at redpitaya.RPClient.(RPClient.java:57)
at redpitaya.RPClient.main(RPClient.java:70)
Caused by: java.net.ConnectException: Connection refused: getsockopt
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:946)
at org.glassfish.grizzly.nio.transport.TCPNIOConnectorHandler.onConnectedAsync(TCPNIOConnectorHandler.java:175)
at org.glassfish.grizzly.nio.transport.TCPNIOConnectorHandler$1.connected(TCPNIOConnectorHandler.java:132)
at org.glassfish.grizzly.nio.transport.TCPNIOConnection.onConnect(TCPNIOConnection.java:220)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:502)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.executeIoEvent(WorkerThreadIOStrategy.java:73)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:66)
at org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:381)
at org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:353)
at org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:319)
at org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:248)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
at java.base/java.lang.Thread.run(Thread.java:840)
Подробнее здесь: [url]https://stackoverflow.com/questions/79170023/connecting-to-red-pitaya-application-from-java[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия