#java #websocket #processing
#java #веб-сокет #обработка
Вопрос:
У меня есть интерактивное приложение paint, размещенное на paint.unubo.cloud, и всякий раз, когда я пытаюсь подключиться к нему с помощью processing и слишком высокой библиотеки Java websocket от Nate, оно немедленно отключается с помощью disconnect code -1. Я ничего не могу найти о том, что означает значение -1, и я понятия не имею, как это исправить. Вот мой код:
import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class WebPaint extends PApplet {
Client client;
boolean isOpen = false;
int x = -50;
int y = -50;
public void setup() {
background(100);
fill(0);
try {
client = new Client(new URI("wss://paint.unubo.cloud/socket.io/?EIO=3amp;transport=websocket"));
client.connect();
}
catch(Exception e) {
println(e);
}
}
public void draw() {
ellipse(x, y, 10, 10);
}
public void mouseDragged() {
if (isOpen) {
client.send("42["message",{"x":" mouseX ","y":" mouseY "}]");
}
}
public void keyPressed() {
client.connect();
}
class Client extends WebSocketClient {
public Client(URI serverURI) {
super(serverURI);
}
public void onError(Exception e) {
println(e);
}
public void onClose(int reason, String details, boolean remote) {
println("Closed: " reason " " details);
isOpen = false;
//exit();
}
public void onOpen(ServerHandshake hs) {
println("Connected");
isOpen = true;
}
public void onMessage(String message) {
if (message.length() > 2 amp;amp; message.substring(0, 2).equals("42")) {
String data = message.substring(13, message.length() - 1);
JSONObject json = JSONObject.parse(data);
println(json.toString());
x = json.getInt("x");
y = json.getInt("y");
ellipse(json.getInt("x"), json.getInt("y"), 10, 10);
}
}
}
public void settings() { size(600, 600); }
static public void main(String[] passedArgs) {
String[] appletArgs = new String[] { "WebPaint" };
if (passedArgs != null) {
PApplet.main(concat(appletArgs, passedArgs));
} else {
PApplet.main(appletArgs);
}
}
}