他们的 github page中有一个例子可以做到这一点.看起来你从那个例子开始并从on_open中每秒发送一次消息并在run_forever调用之后粘贴它,BTW一直运行直到套接字断开.

也许你在这里遇到了基本概念的问题.总是会有一个专门用于侦听套接字的线程(在这种情况下,主线程进入run_forever内部等待消息的循环).如果你想要进行其他一些事情,你需要另一个线程.

下面是他们的示例代码的不同版本,其中不是使用主线程作为“套接字侦听器”,而是创建另一个线程并在那里运行run_forever.我认为它有点复杂,因为您必须编写代码以确保套接字已连接,而您可以使用on_open回调,但也许它会帮助您理解.

import websocket

import threading

from time import sleep

def on_message(ws, message):

print message

def on_close(ws):

print "### closed ###"

if __name__ == "__main__":

websocket.enableTrace(True)

ws = websocket.WebSocketApp("ws://echo.websocket.org/", on_message = on_message, on_close = on_close)

wst = threading.Thread(target=ws.run_forever)

wst.daemon = True

wst.start()

conn_timeout = 5

while not ws.sock.connected and conn_timeout:

sleep(1)

conn_timeout -= 1

msg_counter = 0

while ws.sock.connected:

ws.send('Hello world %d'%msg_counter)

sleep(1)

msg_counter += 1

python websocet回调_python – 线程,非阻塞websocket客户端相关推荐

  1. 异步非阻塞http客户端——Spring WebClient

    一.简单的使用 这里先简单的介绍Spring WebClient的简单的用法.下面直接上示例 pom.xml <?xml version="1.0" encoding=&qu ...

  2. 在Python中对子进程进行非阻塞读取

    我正在使用子流程模块来启动子流程并连接到其输出流(stdout). 我希望能够在其stdout上执行非阻塞读取. 有没有一种方法可以使.readline成为非阻塞状态,或者在调用.readline之前 ...

  3. [Python]再学 socket 之非阻塞 Server

    再学 socket 之非阻塞 Server 本文是基于 python2.7 实现,运行于 Mac 系统下 本篇文章是上一篇初探 socket 的续集, 上一篇文章介绍了:如何建立起一个基本的 sock ...

  4. python recv_[Python]关于socket.recv()的非阻塞用法

    Context 在写一个Socket I/O模块,功能要求如下: 作为服务端,需要永远循环等待连接 建立TCP连接后可以收发数据 收发数据相互独立,不能阻塞 Trouble 代码如下 def run_ ...

  5. linux socket 阻塞服务端 非阻塞客户端,linux下异步RPC的阶段性总结-非阻塞SOCKET客户端...

    尽可能使用非阻塞socket int flags, s; flags = fcntl (fd, F_GETFL, 0); if (flags == -1){ close(fd); return -1; ...

  6. python运行原理_Python线程池及其原理和使用(超级详细)

    系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互.在这种情形下,使用线程池可以很好地提升性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池. 线程池在系统启动时即 ...

  7. python创建子类_Python线程创建子类?

    当我在python中使用线程时,我在思考创建子类的原因时遇到了一个问题.我看过很多网站,包括tutorialspoint.在 文档说您需要定义Thread类的一个新子类.我对类有一个基本的了解,但根本 ...

  8. python多任务编程_python线程的多任务编程

    多任务 多任务介绍 对于人来说,一边听歌,一边跳舞就是多任务. 对于电脑,简单的说,同一时间执行多个程序处理数据叫做多任务 多任务理解 单核CPU 单核cpu在处理多任务的时候是根据时间片轮转的方式进 ...

  9. python tcp服务器_python实现TCP服务器端与客户端的方法详解

    本文实例讲述了python实现TCP服务器端与客户端的方法.分享给大家供大家参考.具体如下: TCP服务器程序(tsTserv.py): from socket import * from time ...

最新文章

  1. 0 - python简介
  2. vivo应用商店电脑版_好车网APP|苹果商城、华为应用市场、腾讯应用宝、vivo应用商店、OPPO应用商店用户免费下载...
  3. linux系统硬盘坏道,如何在 Linux 系统下检测硬盘上的坏道和坏块
  4. java中main方法前的public static void及其后面的(String[] args)【笔记自用】
  5. Python---shelve模块
  6. 演示:混合配置基于Linux winows cisco环境动态路由
  7. ORACLE 11g R2 RAC群集堆栈的关闭过程分析
  8. 安装deepin linux
  9. android各种color值
  10. 数颜色(洛谷-P1903)
  11. Kafka监控:Kafka-Manager
  12. 将数所有奇数移到数组前java_全国2014年4月自考Java语言程序设计(一)真题
  13. 201621123058《java程序设计》第一周学习总结
  14. HTML静态网页--图片热点
  15. 教育主管部门管理效率、学生学习效率及教师工作效率
  16. html倒计时代码执行操作,JS倒计时两种实现方式代码实例
  17. VC2005字符集设置容易出错的问题!
  18. 浙工商电信闪讯老毛子路由器设置
  19. 计算机图形学:二维基本几何变换——对称
  20. (二)一步步来开始SSM:数据连通测试

热门文章

  1. The Security Learning
  2. Javascript权威指南学习笔记一:数据类型
  3. java编写单词数_JAVA flink小试——单词计数
  4. arch模型的思路_ARCH模型
  5. java 整数 字节数组_将整数转换为字节数组(Java)
  6. java timer 线程安全_多线程之 线程安全与控制
  7. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果
  8. graphpad如何做x轴在上方的图_R-ggridges包:山峰叠峦图
  9. mysql批量更新后返回id_如何批量插入Mysql并取得各自的递增ID
  10. 寻找百度翻译参数,实现百度翻译