我找到了很多关于这个主题的其他帖子,但似乎没有一个有我需要的答案。
我为Minecraft编写了一个Bukkit插件,可以将帖子数据发送到PHP页面并从页面获得回报。
现在有一件事我无法弄清楚。我想在页面上有一个按钮,当单击该按钮时,将数据发送到 Java 插件并让插件打印消息。
我见过一些关于插座的东西。但是在阅读了它们之后,我不知道如何设置它们。
几乎在任何时候你都应该能够点击这个按钮,它会将数据发送到Java插件,我可以随心所欲地使用这些数据。
有谁知道我如何让 Java 插件不断等待页面中的数据?
我当前的代码:
(这会将玩家姓名发送到网站。
String re = "";
URL url = new URL("address here");
URLConnection con = url.openConnection();
con.setDoOutput(true);
PrintStream ps = new PrintStream(con.getOutputStream());
ps.print("player=" + player.getName());
con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
re += line + "'n";
}
rd.close();
ps.close();
我的php只是返回它获得的任何帖子数据。
它工作正常,但我想在我的 java 插件中侦听来自 php 页面的数据。
有许多
方法可以在两个服务器之间进行通信。我会使用其中之一:
- 插座
- JMS - Java Message Service,如 ActiveMQ
他们都有可用的教程,只是谷歌。
您可以使用
database
,或者在PHP
端设置一个json/xml
api,并访问database
,或者使用此示例代码从 Java 访问 json/xml
以打开 url。
URL url = new URL("site.com/api/foo.json");
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
for (String line; (line = reader.readLine()) != null;) {
System.out.println(line);
}
}
你可以看看本教程来解析 Java 的 JSON。