在扭曲协议中定期运行函数

2023-12-28

我正在寻找一种方法来定期通过连接到 TCP 端口的所有客户端发送一些数据。我正在看扭曲的Python,我知道reactor.callLater。但是我如何使用它定期向所有连接的客户端发送一些数据?数据发送逻辑位于Protocol类中,由反应器根据需要实例化。我不知道如何将它从反应堆绑定到所有协议实例......


您可能希望在工厂中执行此操作以进行连接。每次建立和丢失连接时,工厂不会自动收到通知,因此您可以通过协议通知它。

下面是一个完整的示例,说明如何将twisted.internet.task.LoopingCall 与自定义的基本工厂和协议结合使用,每10 秒向每个连接宣布“10 秒已过去”。

from twisted.internet import reactor, protocol, task

class MyProtocol(protocol.Protocol):
    def connectionMade(self):
        self.factory.clientConnectionMade(self)
    def connectionLost(self, reason):
        self.factory.clientConnectionLost(self)

class MyFactory(protocol.Factory):
    protocol = MyProtocol
    def __init__(self):
        self.clients = []
        self.lc = task.LoopingCall(self.announce)
        self.lc.start(10)

    def announce(self):
        for client in self.clients:
            client.transport.write("10 seconds has passed\n")

    def clientConnectionMade(self, client):
        self.clients.append(client)

    def clientConnectionLost(self, client):
        self.clients.remove(client)

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

在扭曲协议中定期运行函数 的相关文章

  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O

随机推荐

  • 如何通过验证保留 JSF 视图参数

    我将 JSF 2 0 CDI 和 PrimeFaces 2 2 1 用于许多 CRUD 表单 这些表单允许用户通过单击数据表中的链接来查看或更新现有实体的属性 其中实体的标识符被传递到CRUD 形式作为视图参数 我在 PrimeFaces
  • 内存是否加密?

    我想将一些数据存储在变量中 并且我知道变量存储在内存中 内存中的数据是否被加密 另外 软件是否可以读取存储在内存中的变量名称并能够从中实际提取数据 内存是not在我所知道的任何平台上进行加密 无论如何 它的价值有限 因为处理器通常必须对明文
  • R 中 MuMIn 包的标准化

    我使用 R 中的 MuMIn 包来选择模型并计算输入变量 rain brk onset wid 的效应大小 为了使变量之间的效应大小具有可比性 我使用标准化函数对它们进行了标准化arm包裹 这是我正在遵循的代码 供参考 请参阅本文附录 ht
  • StreamReader 和二进制数据

    我有这个包含不同字段的文本文件 某些字段可能包含二进制数据 我需要获取文件中的所有数据 但现在使用 StreamReader 时 它不会读取二进制数据块以及之后的数据 解决这个问题的最佳解决方案是什么 Example field1 fiel
  • 使用 Java 8 的复杂自定义收集器

    我有一个对象流 我想通过以下方式收集它们 假设我们正在处理论坛posts class Post private Date time private Data data 我想创建一个列表 其中包含哪些组posts通过一段时间 如果没有post
  • 使用 Java 通过 Rest API 在 Confluence 中创建页面

    有谁有关于如何使用 Confluence 的 RESTful API 在 Confluence 中创建页面 wiki 条目的示例吗 我正在尝试用 Java 编写一些可以做到这一点的东西 先感谢您 谢谢 我已经在线检查了文档 但找不到任何示例
  • 安装同一 iPhone 项目的不同版本?

    当我制作游戏原型时 我经常需要回去与旧版本进行比较 以更好地了解我是否走在正确的轨道上 但每次我需要检查特定版本时都必须检查旧版本并重新导出 这是一个漫长的过程 如果我可以简单地启动不同的版本 那就会更顺利 如何在设备上安装同一项目的多个版
  • 如果在沙盒中,Stripe.js 需要“allow-same-origin”

    我正在尝试打开stripe js的支付网关 结账页面 我这样做了 async function LoadPaymentController var stripe Stripe pk test 51JBxkrB1SsiUQAfnzEWMqNg
  • 从 url 中删除 php 扩展名

    我有网址example com lt php example并希望删除 phpexample com lt example我尝试使用 htaccess 但我认为这是不可能的 RewriteEngine On RewriteCond REQU
  • 是否可以使 SwiftUI ListMenu 具有不同的行为?

    是否可以使用 swiftUI 创建一个列表菜单 其中列表项具有不同的行为 并使用 foreach 添加到视图中 列表项将是模型 例如 第一个将打开 个人资料 视图 第二个将打开另一个不同的视图 第三个将只是简单地注销 并用 ForEach
  • 使用正则表达式提取 PHP 代码

    我想用正则表达式提取本节的整个 PHP 代码 h1 Extract the PHP Code h1 Another stumbling block gt echo that works gt p Some HTML text p 不幸的是
  • Python 最大函数

    当列表中的项目不是同一类型时 max 函数如何工作 例如以下代码返回 1 3 max 1 52 53 1 3 gt 1 3 在Python2中 不同类型对象的默认比较是使用id它们的类型 通过将对象指针转换为整数获得 这里是来源的链接 ht
  • Java 执行器:当任务完成时,如何在不阻塞的情况下收到通知?

    假设我有一个充满任务的队列 我需要将其提交给执行器服务 我希望一次处理一个 我能想到的最简单的方法是 从队列中取出一个任务 提交给执行人 对返回的 Future 调用 get 并阻塞 直到有结果可用 从队列中取出另一个任务 但是 我试图完全
  • Android - 如何仅通过单击应用程序图标来执行项目的主要功能?

    我正在制作一个应用程序 并且需要仅通过单击其图标来执行其主要功能 换句话说 没有布局 没有小部件 只是它的工作 一旦用户单击该图标 它就应该执行其主要功能 我想到的一种方法是将所有代码放入onCreate功能 或者如果还有其他方法请分享给我
  • 应用程序被终止时的 Android 地理围栏

    我的主要要求是让服务拥有自己的流程并触发自己的地理围栏事件 我希望用户在进入地理围栏时收到通知中心的通知 即使应用程序被终止也是如此 我阅读了有关服务的内容 这对我来说似乎很清楚 Android 文档很丰富 因此我设法了解如何使用自己的进程
  • ggplot2/R 输出 pdf 太大

    我正在 MacBook Pro 中的 ggplot2 中生成 32x32 图块 每个图块小于四分之一英寸 x 四分之一英寸大小 热图 这是相对简单的东西 然而 它的 pdf 输出很大 大约 7MB 当我将其加载到 pdflatex 中时 加
  • 创建 Vuex 存储后,如何手动将 getter/mutations 添加到 Vuex 存储中?

    我正在尝试在我的 Vuejs 组件之一的 created 生命周期挂钩中添加新变量 getter 和突变 变量工作正常 但对于 getters mutations 来说 似乎并不像向 vuex 存储对象添加新函数那么容易 我试图解决的问题是
  • 将样式添加到 textarea 的特定行

    我有动态的 html textarea 它的内容逐行更改 我想为更新或修改的行内容添加一些样式 是否有任何窗口选择 例如属性 可以做到这一点 我想要的是让用户感觉到改变已经发生happen 或者还有其他方法可以实现吗 没有简单的方法可以仅通
  • Android 上的 CDMA PDU 解析

    我编写了一个程序来解码 CDMA 3GPP2 点对点 SMS 消息 我在互联网上找到的几个 CDMA PDU 十六进制字符串上对其进行了测试 效果非常好 然而 当我尝试在 Android 平台上的所有传入短信上实现它时 它总是失败 我查看了
  • 在扭曲协议中定期运行函数

    我正在寻找一种方法来定期通过连接到 TCP 端口的所有客户端发送一些数据 我正在看扭曲的Python 我知道reactor callLater 但是我如何使用它定期向所有连接的客户端发送一些数据 数据发送逻辑位于Protocol类中 由反应