python websocket服务

WebSocket 是一个标准化协议,构建在 TCP 之上,能够在客户端和服务端之间建立一个全双工的通信渠道。这里的客户端和服务端通常是用户浏览器和 Web 服务器。在 WebSocket 诞生之前,如果我们想保持这样的一个长连接,就需要使用诸如长轮询、永久帧、Comet 等技术。而现今 WebSocket 已经得到了所有主流浏览器的支持,我们可以使用它开发出在线聊天室、游戏、实时仪表盘等软件。

安装websockets第三发库

pip install websockets
pip install asyncio

实现websocket服务端服务

import asyncio
import websockets
@asyncio.coroutine
def echo(websocket, path):
message = yield from websocket.recv()
print(‘recv‘, message)
server_data = "收到服务端的数据"
yield from websocket.send(server_data)
start_server = websockets.serve(echo, ‘localhost‘, 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
实现websocket客户端服务

编写一个index.js文件,具体代码如下:

var ws = new WebSocket("ws://localhost:8765/echo")
//建立web socket 连接成功触发事件
ws.onopen = function () {
ws.send("客户端发送的数据")
console.log("数据发送中....")
};
//接收 web socket 服务端数据时触发事件
ws.onmessage = function (evt) {
var received_msg = evt.data
console.log(received_msg)
};
//断开web socket 连接成功触发事件
ws.onclose = function () {
console.log("连接已断开")
};
编写一个index.html文件,引入上面编写的js文件,来测试一下websocket的功能。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>websocket</title>
</head>
<body>
<script src="./index.js"></script>
</body>
</html>
在浏览器打开index.html文件,打开调试窗口,刷新页面。可以看到websocket客户端与服务端各自输出的日志。

原文地址:https://www.cnblogs.com/slqt/p/10860886.html

时间: 2024-10-13 15:24:26

python websocket服务的相关文章

运维开发:python websocket网页实时显示远程服务器日志信息

功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用ajax每隔段时间去获取服务器日志?out了,试试用websocket方式吧 我用bottle框架,写了个websocket服务端,浏览器连接到websocket server,再用python subprocess获取远程服务器的日志信息,subprocess,就是用Popen调用shell的sh

Python Websocket消息推送---GoEasy

Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送速度快,代码简单易懂上手快浏览器兼容性:GoEasy推送支持websocket 和polling两种连接方式,从而可以支持IE6及其以上的所有版本,同时还支持其它浏览器诸如Firefox, Chrome, Safari 等等.支 持不同的开发语言:   GoEasy推送提供了Restful API接口,无论你的后台程序用的是哪种语言都可以通过RestfulAPI来实现后台实时推送.

写一个python的服务监控程序

写一个python的服务监控程序 前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4. 到python站点下载源码.解压到Redhat上.然后执行以下的命令: # ./configure --prefix=/usr/local/python27 # make # make install 这样安装之后默认不会启用Python2.7.须要使用/usr/local/python27/bin/python2.7调用新版本号的python. 而

Tomcat7 搭建 websocket服务

pom.xml (虽然配置了maven tomcat7插件,但是直接从maven中启动web服务,websocket服务启动不了.要将web服务部署到tomcat7 server上.可以直接打包war,也可以在开发工具中引入tomcat7) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       

高效简易websocket服务开发包beetle

websocket的主要是为了解决在web上应用长连接进行灵活的通讯应用而产生,但websocket本身只是一个基础协议,对于消息上还不算灵活,毕竟websocket只提供文本和二进制流这种基础数据格式.在实际应用则更偏向于对象消息的处理,而在这基础上更希望集成一系列的消息路由机制来解决消息处理上的问题.为了解决以上问题beetle针对websocket进行了一些高层次的封装,让服务端处理消息变得更简单灵活.以下通过不同的示例介绍Beetle websocket开发包的简易性. hello wo

python web服务学习——flask

flask是一个使用 Python 编写的轻量级 Web 应用框架.也是开发python web服务最常用的框架之一. 第一步当然是安装flask,依然是pip安装: 学习flask可以从官网的quick start(http://flask.pocoo.org/docs/0.10/quickstart/#hooking-in-wsgi-middlewares)开始,这里有许多的小例子,先看一个最简单的 from flask import Flask app = Flask(__name__)

spring-boot框架下的websocket服务

这几天在做web端实时展示服务端日志文件新增内容的功能.要满足实时的需求,我选择的方案是在web端跟服务端建立一个websocket链接,由服务端通过tail -f 命令将文件新增内容发送给web端. 关于websocket的介绍,可以参考这篇博文:http://www.cnblogs.com/lizhenghn/p/5155933.html(链接仅用于学习交流,如有版权问题请及时告知).这里我主要想介绍的是在spring-boot框架下如何发布websocket服务. 一.在服务端发布webs

Python Web 服务开发者: 第 1 部分

Python Web 服务开发者: 第 1 部分 Python Web 服务世界 Python 的座右铭一向是“装备齐全”,这是指在安装该语言时会附带一大套标准库和功能程序.本文概述了在 Python 中开发 Web 服务时可以使用的工具和功能程序.这些工具和功能程序包括内置的 Python 功能和第三方开放源代码的工具 0 评论: Mike Olson([email protected])Fourthought, Inc. Uche Ogbuji([email protected])Fourt

C# WebSocket 服务端示例代码 + HTML5客户端示例代码

WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading; using System.Text.RegularExpressions; using System.Security.Cryptography; na