Java与Web服务通信

时间:2012-09-19 22:30:39

标签: java php web-services sockets

我需要在java中编写一个与Web服务器通信的应用程序。 我知道如何使用PHP,但我担心它不会在这个中删除它。

这是我的情况。 我有多个客户端,当其中一个客户端向服务器发送特定消息时(到目前为止,PHP上没有问题),我希望它向所有其他连接的客户端发送特定消息。 问题是,我很难在PHP中找到有关服务器套接字的任何信息,这让我相信这不是实现这一目标的正确方法。到目前为止,我正在使用付费托管(x10premium)托管我的服务器,所以我想用这个来做这件事,但是,我不确定它甚至可以用PHP。 目前我正在让每个客户定期检查服务器是否收到任何其他客户的消息,但我不喜欢这个解决方案...... 我希望有人能指出我正确的方向。我不太了解Ruby和其他用来做类似事情的语言,但如果有必要,我很乐意学习它。

提前致谢

编辑: 忘了提一下,服务器(目前是PHP)也会与MySQL表进行通信。如果重要的话。

1 个答案:

答案 0 :(得分:1)

这是PHP套接字服务器/客户端的一个很好的例子: http://tech.navarr.me/2010/07/how-to-create-a-socket-server-in-php.html

你可以像使用JAVA一样,但请记住PHP不支持多线程或多处理,所以如果10个客户端一次连接到你的服务器,你将逐个处理它们,所以最终1将不得不等待其他9个完成 - 一切,数据库和连接开销。

如果您使用JAVA或Python,例如,您可以在单独的线程中处理每个请求,以便DB&同时处理网络通信开销。

Python已经构建了套接字服务器组件和漂亮且易于使用的mysql组件,这将使它成为一个轻松实现这一点,甚至根本不需要理解线程。

对于python套接字服务器,请参见此处:

http://docs.python.org/library/socketserver.html

基本上,您只需定义一个将为每个新客户端连接执行的函数,并告诉服务器serve_forever() - 直到它死亡,它将执行您想要的操作。