Python连接巴法云

巴法云连接:

完成第一个例子:

import socket
import threading
import time

def connTCP():
    global tcp_client_socket
    # 创建socket
    tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # IP 和端口
    server_ip = 'bemfa.com'
    server_port = 8344
    try:
        # 连接服务器
        tcp_client_socket.connect((server_ip, server_port))
        # 发送订阅指令
        substr = 'cmd=1&uid=5c6418403590f0017c65d0d17509f66b&topic=first1try\r\n'
        tcp_client_socket.send(substr.encode("utf-8"))
    except:
        time.sleep(2)
        connTCP()


# 心跳
def Ping():
    # 发送心跳
    try:
        keeplive = 'ping\r\n'
        tcp_client_socket.send(keeplive.encode("utf-8"))
    except:
        time.sleep(2)
        connTCP()
    # 开启定时,30秒发送一次心跳
    t = threading.Timer(30, Ping)
    t.start()

def bafayun_start():
    connTCP()
    Ping()

def get_info():#获取信息
    recvData = tcp_client_socket.recv(1024)
    if len(recvData) != 0:
        print('recv:', recvData.decode('utf-8'))
    else:
        print("conn err")
        connTCP()

def print_bafa_info(info):#发送信息
    substr2 = 'cmd=2&uid=5c6418403590f0017c65d0d17509f66b&topic=first1try&msg={0}\r\n'.format(info)
    tcp_client_socket.send(substr2.encode("utf-8"))

    

连接方法:

import socket#网络连接
import threading#多线程 用于发布心跳

1.连接服务器(这部分是不能变的):

tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# IP 和端口
server_ip = 'bemfa.com'
server_port = 8344
try:
    # 连接服务器
    tcp_client_socket.connect((server_ip, server_port))

2.发送心跳(不能变,但需要在第一步下面进行)

def Ping():
    # 发送心跳
    try:
        keeplive = 'ping\r\n'
        tcp_client_socket.send(keeplive.encode("utf-8"))
    '''except:
        time.sleep(2)
        connTCP()'''
    # 开启定时,30秒发送一次心跳
    t = threading.Timer(30, Ping)
    t.start()

#Ping()

3.发送指令(指令有很多,因此可以挑着来)

3.1订阅信息:

#uid是隐藏的那个号,topic是主题

def order_topic(uid,topic):

    substr = 'cmd=1&uid={0}&topic={1}\r\n'.format(uid,topic)
    tcp_client_socket.send(substr.encode("utf-8"))

例:

order_topic(uid='5c6418403590f0017c65d0d17509f66b',topic='first1try')

#订阅first1try这个主题

3.2发布信息:

#msg就是发布的信息

def print_info(uid,topic,msg):

    substr = 'cmd=2&uid={0}&topic={1}&msg={2}\r\n'.format(uid,topic,msg)
    tcp_client_socket.send(substr.encode("utf-8"))

例:print_info(uid='5c6418403590f0017c65d0d17509f66b',topic='first1try',msg='wuhu')

#发送wuhu这个信息

3.3接收信息:

#接受信息比较麻烦

#理论上cmd=3就是来接受信息的,但没成功

recvData = tcp_client_socket.recv(1024)
print(recvData.decode('utf-8'))

#这个就可以得到信息

3...其他:
https://cloud.bemfa.com/docs/#/

MQTT:

pip3 install paho-mqtt
 

# -*- coding: utf-8 -*-
# 以下代码在2021年10月21日 python3.10环境下运行通过

import paho.mqtt.client as mqtt

HOST = "bemfa.com"
PORT = 9501
client_id = "4d9ec352e0376f2110a0c601a2857225"                       
#连接并订阅
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("led00202")         # 订阅消息

#消息接收
def on_message(client, userdata, msg):
    print("主题:"+msg.topic+" 消息:"+str(msg.payload.decode('utf-8')))

#订阅成功
def on_subscribe(client, userdata, mid, granted_qos):
    print("On Subscribed: qos = %d" % granted_qos)

# 失去连接
def on_disconnect(client, userdata, rc):
    if rc != 0:
        print("Unexpected disconnection %s" % rc)


client = mqtt.Client(client_id)
client.username_pw_set("userName", "passwd")
client.on_connect = on_connect
client.on_message = on_message
client.on_subscribe = on_subscribe
client.on_disconnect = on_disconnect
client.connect(HOST, PORT, 60)
client.loop_forever()


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值