一个简单的websocket服务器

simple-websocket-server的Python项目详细描述


#一个简单的websocket服务器[Circleci](https://img.shields.io/circleci/project/github/pikhovkin/simple websocket server.svg)(https://circleci.com/gh/pikhovkin/simple websocket server)
[![PYPI](https://img.shields.io/pypi/v/simple websocket server.svg)(https://pypi.org/project/simple websocket server/)
![pypi-python版本](https://img.shields.io/pypi/pyversions/simple websocket server.svg)
[![pypi-license](https://img.shields.io/pypi/l/simple websocket server.svg)](/license)

####安装



>pip安装简单websocket服务器




br/>def connected(self):
打印(self.address,“connected”)

def handle_close(self):
打印(self.address,“closed”)



server=websocketserver('',8000,simpleecho)
server.serve_forever()
``````````````


open*tests/websocket.html*并连接到服务器。




35 35 35 35 35聊天服务器示例


`````````````````````>对于客户端中的客户端:
如果是客户!=self:
客户端。发送u消息(self.address[0]+u'-'+self.data)


def connected(self):
打印(self.address,“connected”)
客户端中的客户端:
客户端。发送u消息(self.address[0]+u'-connected')
客户端。附加(self)

def handle close(self):
clients.remove(self)
print(self.address,“closed”)
用于客户端中的客户端:
client.send_message(self.address[0]+u'-disconnected')



clients=[]

server.serve_forever()
``````````
打开多个*测试/websocket.html*并连接到服务器。



有一个示例,它提供了一个简单的echo和聊天服务器




chat服务器(打开多个*测试/websocket.html*文件)


使用密钥

openssl req-new-x509-days 365-nodes-out cert.pem-keyout key.pem

*通过https。
https服务器将在本地目录中查找cert.pem。
确保*tests/websocket.html*也位于运行服务器的同一目录中。



4)打开Web浏览器以:*https://localhost:443/tests/websocket.html*

5)更改*ws://localhost:8000/*到*wss://localhost:8000*并单击“连接”。

注意:如果连接有问题,请确保在浏览器中添加证书,以防出现异常*https://localhost:8000*或您要连接到的任何主机:端口对。


已完成
-self.address:终结点的TCP地址端口元组

handle_close:在终结点关闭或出现错误时调用
-self.address:端点的TCP地址端口元组

handle:当有来自客户端端点的传入消息时调用
-self.address:端点的TCP地址端口元组
-self.opcode:WebSocket帧类型(流、文本binary)
-self.data:bytearray(二进制帧)或unicode字符串有效负载(文本帧)
-self.request:websocket握手的http详细信息(请参阅basehttprequesthandler)


发送消息:向客户端发送一些文本或二进制数据
-以unicode对象发送数据将发送文本帧
-发送数据因为bytearray对象将发送二进制帧

close:send close frame to endpoint

mit

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓为什么Java AudioEffect不支持双簧管?   增加内存后出现java IntelliJ堆大小错误   在unix/linux中工作的java中将unicode字符串转换为ASCII   java是否缺少正确对齐输出的值?   java Spring 3 MVC:动态表单中的onetomany(创建/更新时添加/删除)   java在接口中创建两个通用参数   lambda使用Java 8从嵌套列表中使用forEach查找项的替代方法是什么?   Java正则表达式匹配10位电话号码,中间有空格   linux将log4j外部化。使用命令行Java的属性文件   带有SSL的java简单RMI服务器   java无法为事务[…]打开JPA EntityManager无法获取驱动程序类“null”和URL“null”的连接   Android设备上的java Oauth Foursquare   for循环的ImageButton名称的java骰子模拟浓缩   java有没有简单的1d条形码阅读器?   如何在调用resultset后解决“无效字符串或缓冲区长度”。从java到访问mdb的getString()连接   在Java8中,是否可以使用JVM参数来控制何时(或在什么条件下)卸载类?