连接 python 和 javascript 进行双向通信

2023-11-27

我想通过 python 提供来自 javascript 代码的查询。但我在这个领域根本没有经验。我想要构建的是这样的:

1. 请求.js:

open_connection('server.py');
for (var i=0; i<10; i++)
    document.write(request_next_number());
close_connection('server.py')

2.服务器端.py

x = 0
while connected:
    if request:
        send(x)
        x = x + 1

我听说过 JSON,但不知道是否应该使用它。 (?)

您能给我一些代码示例或指南如何实现上述两个文件吗?


你需要的是一个套接字服务器python端和 javascript 端的客户端/请求服务器。

对于python服务器端,请参考SocketServer,(也取自那里的示例),您必须确保的一件事是让套接字过去NAT(可能是端口转发)。另一种选择是Twisted这是一个非常强大的框架,我相信它具有发送数据的功能NAT.

import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):
    """
    The RequestHandler class for our server.

    It is instantiated once per connection to the server, and must
    override the handle() method to implement communication to the
    client.
    """

    def handle(self):
        # self.request is the TCP socket connected to the client
        self.data = self.request.recv(1024).strip()
        print "{} wrote:".format(self.client_address[0])
        print self.data
        # just send back the same data, but upper-cased
        self.request.sendall(self.data.upper())

if __name__ == "__main__":
    HOST, PORT = "localhost", 9999

    # Create the server, binding to localhost on port 9999
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)

    # Activate the server; this will keep running until you
    # interrupt the program with Ctrl-C
    server.serve_forever()

On the JavaScript有很多允许套接字连接的框架,这里有一些

  • Socket IO

Example:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>
  • 你甚至可以使用HTML5 Web Sockets

Example:

var connection = new WebSocket('ws://IPAddress:Port');
connection.onopen = function () {
  connection.send('Ping'); // Send the message 'Ping' to the server
};
  • 另外,请看一下这本书的一部分,第 22 章Javascript: The Definitive Guide , https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chapter-22/web-sockets

  • 最后,看一下jssockets

Example:

_jssocket.setCallBack(event, callback);
_jssocket.connect(ip,port);
_jssocket.write(message);
_jssocket.disconnect();

希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接 python 和 javascript 进行双向通信 的相关文章

  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • Jquery - 选择选项后如何获取选项的特定数据类型?

    我将直接跳到标记 然后解释我想要做什么 HTML 选择选项
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • make 用于编译 — 项目中文件夹和子文件夹中的所有 *.c 文件

    为了编译两个文件 我创建了一个 makefile 在其中提及对象名称 或者我可以使用 patsubst 来使用模式规则 Makefile for building tapp Copyright 2010 FriendlyARM http w
  • “==”和“是”有区别吗?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 My 谷歌 fu让我失望了 在 Python 中 以下两个相等测试是否等效 n 5 Test one if n 5 print Yay Test two if
  • typedef struct :默认初始化

    typedef struct foo bool my bool int my int foo 在上面的例子中我明白了my bool将被随机初始化为 true 或 false 但怎么样my int 我假设my int默认初始化为 0 但情况似
  • 获取使用 git-svn 重命名的 SVN 存储库的完整历史记录

    我有一个 SVN 存储库 已从 Project 重命名为 Project v1 然后我做了一个git svn clone创建重命名的 SVN 文件夹的 git 版本 When I git log在新创建的 git 存储库中 我只看到一个历史
  • Select2 4.0.0 Bootstrap 主题

    在select2 4 0版本中有一个主题选项 但是在文档中我找不到该选项的含义以及如何创建自定义主题 https select2 github io examples html 我找到了 select2 的 bootstrap 3 主题 但
  • ESP8266 for Arduino IDE (xtensa-lx106-elf-gcc) 和 std::map 链接错误

    是否可以将地图与 ESP8266 一起用于 Arduino 包 这是我的代码 include
  • 如何在CSS选择器中排除特定的类名?

    当用户鼠标悬停类名为的元素时 我尝试应用背景颜色 reMode hover 但我不想改变颜色 如果元素also has reMode selected 注意 我只能使用 CSS 而不是 javascript 因为我在某种有限的环境中工作 为
  • 聚合物预载旋转器

    有时聚合物加载需要一段时间 并且在使用时 页面保持空白 直到一切准备就绪 有没有办法在页面提供服务和聚合物完成其魔力的时间之间显示某些内容 The 文档描述了unresolved属性清除了其中一些问题 虽然申请很常见unresolved t
  • 如何使用 React.js 在 Sails.js 上渲染服务器端模板?

    我正在尝试使用 Sails js 和 React 构建一个同构应用程序 客户端部分很简单 但我遇到了服务器端渲染的问题 当我尝试使用 React 服务器渲染 jsx 文件时 我得到了以下信息 renderToString You must
  • 使用 Retrofit v1.9.0 添加重复参数

    有一个类似的问题被问到here 但我的情况有点不同 我正在尝试提出类似于以下内容的请求 我有两个问题让事情变得困难 首先 重复参数 多次设置 foo 的值 会阻止使用QueryMap 我无法选择以不同的方式传递查询字符串中的值 就像作为数组
  • 选择递增整数

    我想知道是否可以从mysql表中选择递增的整数 如果可能的话 我怎样才能实现这一目标 我的情况是 我有一堆数据 我需要做INSERT INTO newtable SELECT somefield FROM sometable 然而 有一个字
  • Restangular POST 始终为空

    我想我不明白 POST 是如何在 RESTful api 中完成的 当在 Restangular 中创建一个新对象时 var user name John id 123 Restangular one building 5 post use
  • IIS7:为所有 aspx 页面设置“无缓存”,但不包括图像/css/js

    我不想在任何地方缓存我的 aspx 页面 由于某种原因 IE 忽略从我的母版页设置的元标记 我想看看是否可以将 Http 响应标头设置为 Cache Control no cache 设置类似 HttpContext Current Res
  • WiX XmlConfig:在 XmlConfig 中嵌套 XmlConfig 的目的

    目的和 或收益是什么 除了增加创建 删除属性的可读性之外 嵌套一个XmlConfig另一个元素中的元素XmlConfig元素 我所指的示例 我正在使用WiX 3 6
  • 将 Castle Windsor 与 SignalR 集成 - 我应该如何处理这个问题?

    我正在开始使用 SignalR 一旦配置完所有内容 它就可以很好地工作 然而 我开发的几乎所有应用程序都使用 Castle Windsor 因此能够将它们一起使用会很棒 我想这样做的原因是这样我可以在持久连接内使用 Castle 依赖项 服
  • 如何将包含“include”关联的记录转换为 JSON

    如果我做类似的事情 result Appointment find all include gt staff logger debug result inspect 那么它只打印出约会数据 而不打印出相关的员工数据 如果我执行 result
  • C# 如何使用共享 HttpClient 传递 cookie

    我进行了以下设置 JS 客户端 gt Web Api gt Web Api 我需要将身份验证 cookie 一路向下发送 我的问题是将其从一个 Web api 发送到另一个 由于与使用 FormsAuthentication 的旧系统集成
  • 导入模块在终端中有效,但在 IDLE 中无效

    我正在尝试导入pyodbcWindows 计算机上的模块 它可以在终端中运行 但不能在 IDLE 中运行 IDLE中的错误信息是 Traceback most recent call last File FilePath Filename
  • 从圆上的 3 个点计算圆的中心和半径

    有人可以显示可以快速完成此操作的代码吗 假设我们得到三分 p1 p2 p3 按左 gt 右顺序 因此 解决方案还应该检查圆是否有效 即 p1 p2 p3 是否是逆时针的 要计算圆参数 请查看 http paulbourke net geom
  • 连接 python 和 javascript 进行双向通信

    我想通过 python 提供来自 javascript 代码的查询 但我在这个领域根本没有经验 我想要构建的是这样的 1 请求 js open connection server py for var i 0 i lt 10 i docum