0

我正在实现我的 javascript 客户端和 python 服务器之间的拉式通信。我浪费了过去两周与 websockets 和 socketing 的斗争,但现在我决定放弃它。

我正在寻找实现python-javascript通信的最方便的方法,其中客户端将请求发送到服务器,服务器可以回答。我见过很多方法,其中一些:

  • 阿贾克斯
  • json
  • 插座等

我很想听听您对不同可能性的优势的看法。(如果您也有一些很棒的教程可以用来入门,我将非常感激。)

4

1 回答 1

0

看来您对定义和技术有点困惑,所以让我首先澄清一些定义(粗略的描述,不准确):

  • JSON:一种将数据结构(如数组)打包成字符串并检索数据的格式。它是提交实际数据最常用的格式之一,但它本身不能传输数据:它只是数据本身
  • AJAX:在不重新加载整个页面的情况下向服务器发送请求的主要技术。AJAX 通过 HTTP 协议工作,并发送与您通过访问页面发送相同请求时发送的相同标头(例外:AJAX 特殊的标头,取决于库等)。AJAX 本身是提交数据的技术,但不是数据本身。但是,例如,它可以提交以通常的 URL 编码形式编码的表单数据。但它也可以发送 JSON 数据
  • 套接字:套接字的定义非常广泛和笼统。通常,它描述了一个像 TCP 一样的低层(在层次结构中低于 HTTP),但是由于您描述的是 JS + Python,我假设您的意思是浏览器 - 客户端通信。在那种情况下,有 WebSocket。我还没有使用过该技术,但据我所知,它允许任意连接等。对于一个正常的用例来说,高级的方式。

这些是您提到的技术。另外,我想再提两个:

  • XML:类似于 JSON,但格式不同。XML 有各种优点和缺点。从我的角度来看,最大的优势是它比 JSON 更灵活并且在复杂的结构上更容易理解。但是这种灵活性也带来了难以学习的缺点。
  • JSONP:与 AJAX 类似,它用于通信,但顾名思义,它提交 JSON 数据(我认为......)。具有允许跨域请求(也是高级的东西)的优势。

由于您的问题不是那么精确,因此我将在 Web 上下文中回答它(如上面假设的那样):JavaScript 是从浏览器运行的,而服务器是一个用 Python 编写的 Web 应用程序。

为此,我建议结合使用 JSON 和 AJAX:JSON 在 JavaScript 和 Python 中都可以使用,而 jQuery 等库为通过 JSON 接收的数据提供了简单的接口。出于同样的原因,我推荐 AJAX:它易于使用,集成在大多数 JavaScript 库中,并且不需要在服务器端进行任何工作:对于服务器来说,只需处理一个请求。

服务器端的示例:

# Request comes in:
data = json.loads(request_body)
# Do calculations
output = json.dumps(out_data)
send_response(output)

在客户端,您可以使用纯 JavaScript 或jQuery来发送请求和处理响应。

于 2013-08-21T20:03:08.697 回答