websocket(python)
1、websocket-server
https://github.com/google/pywebsocket
git clone https://github.com/google/pywebsocket.git
python setup.py install
python ./mod_pywebsocket/standalone.py -p 9998 -w ./example/
2、websocket-client
https://pypi.org/project/websocket_client/
import websocket
import threading
from threading import Thread
import time
import sys def timer_cb():
print("### timer_cb ###")
global timer
timer = threading.Timer(1,timer_cb)
timer.start() def on_message(ws, message):
print(message) def on_error(ws, error):
print(error) def on_close(ws):
print("### closed ###") def on_open(ws):
def run(*args):
"""
for i in range(3):
# send the message, then wait
# so thread doesn't exit and socket
# isn't closed
ws.send("Hello %d" % i)
time.sleep(1) time.sleep(1)
ws.close()
print("Thread terminating...")
"""
timer = threading.Timer(1,timer_cb)
timer.start() Thread(target=run).start() if __name__ == "__main__":
websocket.enableTrace(False)
if len(sys.argv) < 2:
host = "ws://localhost:9998/echo"
else:
host = sys.argv[1]
ws = websocket.WebSocketApp(host,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever()
python echoapp_client.py
3、html的客户端,用作测试非常方便
pywebsocket-master\example/console.html
ws://localhost:9998/echo
ws://127.0.0.1:9998/echo
4、应用,移植
1) 因为需要用到3des + base64 + md5 加密,所以需要安装pycrypto库,
pycrypto库是个c和python复合型的库,需要编译,编译需要python-dev,所以系统必须要先安装python-dev
sudo apt-get install python-dev
2) 安装python虚拟机
sudo apt-get install python-pip
sudo pip install virtualenv
在python虚拟机里安装应用程序库
pip install websocket-client
pip install pycrypto
3) 可以启动应用程序了
virtualenv -p /usr/bin/python env
source env/bin/activate
(env) dong@ubuntu:~/sip_ws$ python sip_ws.py
z1
{clientType":1,"userPrivileges":null,"isDeviceLogin":false,"isNeedSelectUser":false,"userRoleType":3,"isDoSuf":true,"failedInfo":"登录成功!","protocolHead":"gis_fl","protocolType":1000006}
5、websocke服务器t并发测试工具
https://github.com/chenmingle/test_websocket/blob/master/test_websocket.py
websocket(python)的更多相关文章
- websocket python实现原理
""" pip install ws4py """ import json from ws4py.client.threadedclient ...
- Python如何爬取实时变化的WebSocket数据【华为云技术分享】
一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据.股市实时数据或币圈实时变化的数据.如下图: Web 领域中,用于实现数据'实时'更新的手段有轮询和 WebSo ...
- Python如何爬取实时变化的WebSocket数据
一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据.股市实时数据或币圈实时变化的数据.如下图: Web 领域中,用于实现数据'实时'更新的手段有轮询和 WebSo ...
- 爬取实时变化的 WebSocket 数据(转载)
本文转自:https://mp.weixin.qq.com/s/fuS3uDvAWOQBQNetLqzO-g 一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据. ...
- [tornado]使用webscoket的使用总是403错误
使用的tornado版本为4.0+ 后台: PS D:\CodeHouse\tornado\websocket> python .\ws_app.py WARNING:tornado.acces ...
- Python基于websocket实时通信的实现—GoEasy
Python websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1. 获取GoEasy appkey. 在goeasy官网上注册一个 ...
- python tornado websocket 多聊天室(返回消息给部分连接者)
python tornado 构建多个聊天室, 多个聊天室之间相互独立, 实现服务器端将消息返回给相应的部分客户端! chatHome.py // 服务器端, 渲染主页 --> 聊天室建立web ...
- websocket for python
https://github.com/aaugustin/websockets server.py #!/usr/bin/env python import asyncioimport websock ...
- python测试基于websocket协议的即时通讯接口
随着html5的广泛应用,基于websocket协议的即时通讯有了越来越多的使用场景,本文使用python中的websocket-client模块来做相关的接口测试 import webclient ...
随机推荐
- HTML基础:用表单写一个简易登录页面
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- mysql安装 demo [linux centos7] [5.7.26]
MySQL 安装配置 https://www.runoob.com/linux/mysql-install-setup.html =================================== ...
- Nginx的简单使用
一.Nginx概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.它的特点是支持高并发:资源消耗少:可以做HTTP反向代 ...
- centos 6.5 查看发行版本
cat /etc/redhat-release 其他发行版 lsb_release -a
- wnmp的配置
第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX-1.3.8官网下载:http://nginx.org/en/download.html PHP5.4.8版本下载 ...
- 【Linux】ssh执行远程命令awk 参数报错问题
ssh ip sudo docker ps -a | grep none | awk '{print \$1}'| sed 's/%//g' $1前面加上转移符就好
- webform将一个usercontrol作为模态框在page上弹出
弹窗 public static void RegisterJQueryDialogScript(Page page, string dialogDivId, string title, int wi ...
- Map-Amap:货运解决方案
ylbtech-Map-Amap:货运解决方案 1.返回顶部 1. http://lbs.amap.com/smart/truck/ 2. 2.返回顶部 1. 2. 3.返回顶部 4.返回顶部 ...
- Class-DbConnectionManipulator:Execute,QueryFirstDefault<>
ylbtech-Class-DbConnectionManipulator:Execute,QueryFirstDefault<> 1.返回顶部 1. public object GetS ...
- frida的js脚本处理正则的一个小坑
frida的server模式需要python支持,所以js脚本中的正则需要多一次转义 比如匹配"/proc/{数字pid}" server: paramPath.match(&qu ...