python怎么连接websocket

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么连接websocket相关的知识,希望对你有一定的参考价值。

以下有一个例子,是基于python27版本的,先要pip安装websocket-client。

大概流程如下,具体的传输的数据,还是要知道client和server之间的消息通讯规定,改成自己需要的

#-*- encoding:utf-8 -*-

import sys
from socket import *
import json, time, threading
from websocket import create_connection
reload(sys)
sys.setdefaultencoding("utf8")

# config = 
#     'HOST': '127.0.0.1',
#     'PORT': 10086

#pip install websocket-client

class Client():
    def __init__(self):
        #调用create_connection方法,建立一个websocket链接
        #链接地址请修改成你自己需要的
        self.ws = create_connection("ws://47.93.91.89:10086/name/hehe")
        #建一个线程,监听服务器发送给客户端的数据
        self.trecv = threading.Thread(target=self.recv)
        self.trecv.start()

    #发送方法,聊天输入语句时调用,此处默认为群聊ALL
    def send(self,content):
        #这里定义的消息体要换成你自己的消息体,变成你需要的。
        msg=
            "type":"POST",
            "username":"hehe",
            "sendto":"ALL",
            "content":content

        
        msg = json.dumps(msg)
        self.ws.send(msg)

    #接收服务端发送给客户的数据,只要ws处于连接状态,则一直接收数据
    def recv(self):
        try:
            while self.ws.connected:
                result = self.ws.recv()
                print "received msg:"+str(result)
        except Exception,e:
            pass


    #关闭时,发送QUIT方法,退出ws链接
    def close(self):
        #具体要知道你自己退出链接的消息体是什么,如果没有,可以不写这个方法
        msg=
                "type":"QUIT",
                "username":"johanna",
                "content":"byebye,everyone"
            
        msg = json.dumps(msg)
        self.ws.send(msg)


if __name__ == '__main__':

    c= Client()
    #当输入非exit时,则持续ws链接状态,如果exit,则关闭链接
    while True:
        content = raw_input("please input(input exit to exit):")
        if content == "exit":
            c.close()
            break
        else:
            c.send(content)
            time.sleep(1)

参考技术A 要有库支持才行。Tornado是可以的。

pythonniowebsocket断开怎么处理

参考技术A websocket断开连接时马上重连,依然断开则1分钟后再重连,直到连上。导致实时监视页面的websocket数据推送断了,数据不再更新没有实时性。目的效果:当websocket断开连接时马上重连。

以上是关于python怎么连接websocket的主要内容,如果未能解决你的问题,请参考以下文章

python怎么连接redis(附源码)

python爬虫 请教一下,python怎么连接websocket

pythontelnet批量连接脚本怎么能多个不同网段连接

怎么用python连接mysql数据库

python3中,pycharm中怎么连接数据库

python3连接MSSQL数据库 中文乱码怎么解决