我有一个项目,其中有一个服务器监听端口9999。最初,客户端是一个闪存程序,它使用XML与服务器通信。现在我想为它写一个web客户端(Html)。我想在服务器端做尽可能少的修改。
我在考虑使用纯html + ajax。我面对的问题是:
1)我可以从客户端发送xml并等待响应吗?如果是这样的话,开发它最有效的方法是什么?
2)我认为所有从客户端发送的xml都嵌入在HTTP请求中,但我的服务器根本不知道HTTP。我需要将我的服务器修改为CGI程序吗?
有没有什么好的框架可以让我开始呢?
发布于 2010-10-19 02:56:46
因为不清楚您的服务器是什么类型(可能是基于java或C/C++套接字),如果这是真的,您可以调整它以使用HTTP协议,然后您可以通过JSON在客户端使用javascript代码来请求服务器(首先您应该优先选择JSON而不是XML,因为它更简单,并且是JavaScript语言的核心)。特别是,我发现Prototype.js库非常高效和简单:
function doAJAXRequest(url, t_method, v_parameters, p_onsuccessfunction, p_onloadingfunction) {
url = url + "?" + "randNum" + getRandom();
var objAjax = new Ajax.Request( url, { method: t_method, parameters: v_parameters, onLoading: p_onloadingfunction,
onSuccess: p_onsuccessfunction, onFailure: onfailureAjx } );
}
function setAJAXResultInElement(objRequest, elementId){ $(elementId).innerHTML = objRequest.responseText; }
function onloadingAjx(){ /*...*/ }
function onsuccessAjx(){ /*...*/ }
function onfailureAjx(objRequest) { setAJAXResultInElement(objRequest, "div_main_result"); }有关原型的更多信息,请参阅:http://www.prototypejs.org/learn/introduction-to-ajax
发布于 2010-10-18 14:23:49
如果您的服务器使用XML,您应该能够通过HTTP发送XML,这没有问题。您可以使用AJAX或甚至是普通的POST / GET通过客户端发送此消息,然后等待响应对其执行某些操作。
我不认为你需要改变你的服务器来做任何不同的事情。
你可以用普通的Javascript编写代码来做AJAX (XMLHttpRequests) (只是要确保迎合浏览器的差异)。或者,您可以使用像jQuery这样的框架,它将使您的工作变得更容易,但如果您只想进行几个AJAX调用并处理响应,那么它可能有些夸张。
发布于 2010-10-18 18:28:58
1)是的,您必须发送一个ajax请求并等待响应。我建议你在JQuery上看看这个。编写您自己的Ajax基础知识是一件苦差事。如果您问我,那么请求一个普通的请求/响应(非ajax)是行不通的,因为您返回的是XML。但这没关系,Ajax会做得很好。
2)您的web客户端只与HTTP通信,而且只与HTTP通信。您将需要修改您的服务器(或在其前面放置一些东西),以接受HTTP请求并发送XML作为响应。HTTP是一个非常简单的协议,所以如果你真的需要的话,你可以自己来做(我曾经做过一次)。
https://stackoverflow.com/questions/3956889
复制相似问题