用php将数据发送到java

3
我在这个主题上找到了很多其他的帖子,但似乎没有一个可以解决我的问题。
我已经为Minecraft编写了一个Bukkit插件,可以将POST数据发送到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页面的数据。

2个回答

1
你可以使用一个数据库,或者在 PHP 端设置一个 json/xml API,并访问数据库,或使用此示例代码从 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。

那么你的意思是我应该用Java写入文件,然后用PHP读取它,并用PHP写入文件,再用Java读取它?我认为这只能单向工作,因为PHP无法访问Java运行的文件。 - Parker Jones
@ParkerJones 在 PHP 中从数据库生成 JSON,并在 Java 中读取它。使用 PHP 中的 API 从 Java 中写入。这很复杂,但可行。最简单的方法是使用数据库。 - Un3qual

1

有许多方法可以实现两个服务器之间的通信。我会使用其中之一:

  • 套接字
  • JMS - Java消息服务,例如ActiveMQ

这两种方法都有可用的教程,只需搜索即可。


是的,我听说过套接字。我正在尝试弄清楚如何使用它们。 - Parker Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接