哪位大神能给讲解下mqtt(用的mosquitto做broker)集群怎么做啊 50C

最近在做mqtt推送,水平不够,看的资料也不全,现在是能推送消息,但是集群啊,还有一些优化啊都不太懂。小弟只有50左右c币了,都给你们了。。。

1个回答

大神能给讲解下mqtt(用的mosquitto做broker)集群怎么做啊 50C
最近在做mqtt推送,水平不够,看的资料也不全,现在是能推送消息,但是集群啊,还有一些优化啊都不太懂。小弟只有50左右c币了,都给你们了。。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MQTT Broker Mosquitto(二)数据结构
本文主要介绍一下Mosquitto中用到的比较重要的数据结构,为之后的流程处理讲解奠定基础。为了清晰,结构体展示时只保留重要成员。 一、mosquitto_db struct mosquitto_db{ /*主题树的根结点*/ struct _mosquitto_subhier subs; /*id:context映射的Hash表首节点,通过该成员去遍历H
剖析mqtt服务器(broker)mosquitto v0.1源码
本文由博主原创,未经博主许可不得转载。   前言 一个mqtt broker要完成哪些任务? 作为并发服务器,维护多个客户端的TCP链路 处理客户端mqtt connect、disconnect、subscribe、publish、ping等请求 处理消息持久化即消息永久保存问题、处理不同QoS消息 为什么选择V0.1版本? 就像当初读Linux内核源码也是选一个很老的版本一样。避免...
求大神讲解下。。。
class TempClassrnrnpublic:rn TempClass()rn rn num = 20;rn rn void func()rn rn cout<<"class alive!!!"<num<func();rnrnrn system("pause");rn return 0;rnrn(1)把temp2注释掉,不管temp3注释不注释,输出结果是错的(num为随机数,但func正常输出)rn(2)不把temp2注释掉,结果就是正确的了(num为20,但func正常输出)
mqtt集群怎么做
最近在做mqtt推送,是用的mosquitto做broker,目前只是实现了推送,但是不知道怎么做集群,了解得比较浅,还望各位指导指导。只有100左右积分了,都给你们哈。
MQTT简介Mosquitto桥接及集群环境搭建
原创文章如转载,请注明出处(http://blog.csdn.net/hui6075/)。 目录: MQTT协议简介 Mosquitto桥接模式 Mosquitto集群模式 MQTT协议简介 MQTT是IBM为物联网等环境定义的一套应用层即时通信协议,通过消息中间件,提供订阅/发布方式通过“主题”为不同设备之间的通信提供解耦。 类似的协议还有XMPP、COAP等,但MQTT协议由
求大神讲解下lbm_field2D_t;
c语言
哪位大侠给讲解下
Ajax.Responders.register(rnrn onCreate: function() rnrn Ajax.activeRequestCount++;rnrn ,rnrn onComplete: function() rnrn Ajax.activeRequestCount–;rnrn rnrn);rnrnrnrnAjax.Responders.registerrn这个的主要用处 和相关详细信息rn
MQTT代理服务器:Mosquitto安装
What is Mosquitto? Eclipse Mosquitto是一个开源(EPL / EDL许可)消息代理,它实现了MQTT协议版本5.0,3.1.1和3.1。Mosquitto重量轻,适用于从低功率单板计算机到完整服务器的所有设备。 MQTT协议提供了一种使用发布/订阅模型执行消息传递的轻量级方法。这使其适用于物联网消息传递,例如低功率传感器或移动设备,如电话,嵌入式计算机或微控制器。...
MQTT开源库mosquitto
Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1.1。 MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。目前已经是物联网消息通信事实上的标准协议了。
mqtt客户端 mosquitto安装
mqtt客户端 mosquitto安装 环境: centos 6.8 mosquitto版本:mosquitto-1.5.8 1 下载 官网: https://mosquitto.org/download/ 网盘链接:https://pan.baidu.com/s/1So4Z9ElKB7DpxWZCUWvGuQ 提取码:xhb7 2 安装 本地解压上传到服务器上,目录结构如下: m...
windows编译的mosquitto(mqtt)
windows编译的mosquitto(mqtt),可以直接下载使用。
MQTT服务器搭建--Mosquitto
MQTT服务器搭建--Mosquitto 1.Mosquitto简介 MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议, 适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。目前已经是物联网消息通信事实上的标准协议了。值得一提的是mqtt提供三种不同质量的消息服务: l “至多一次”:消息发布完全依赖底层 TCP/IP 网络。
mqtt消息推送-Mosquitto安装
服务器操作系统为CentOS7。添加yum源 1、在服务器下载并重命名。 http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-7/home:oojah:mqtt.repo2、手动创建编辑并上传。 到官网下载repo资源。 http://download.opensuse.org/repositor
mosquitto 基于MQTT消息推送
mosquitto note 基于MQTT消息推送[https://mosquitto.org] 目的 * 要解决的问题是:给Android手机做消息推送 * 不使用第三方的SDK,如极光推送,百度云推送,信鸽 这些都不能用 * 自已搭建消息推送后台 模块 * 代理端(中转消息,守护进程) mosquitto * 发送消息客户端 mosquitto_pub * 接收消息客户端 m...
mqtt mosquitto的Windows服务
mqtt mosquitto的Windows服务安装包,欢迎下载使用,挺好用的。
oracle存储过程是什么?什么时候用? 为什么要用?怎么用?哪位大神讲解下啊
oracle存储过程是什么?什么时候用? 为什么要用?怎么用?哪位大神讲解下啊
开源一个mqtt broker
开源一个基于muduo网络库实现的mqtt broker,仅支持3.11协议。 目前尚未未支持数据持久化,加密,有兴趣的小伙伴可以一起来玩。 项目地址:https://github.com/Allenxuxu/Xmqtt...
Mqtt Broker部署方法
Mosquitto Broker部署 本机测试(指的是在自己电脑部署broker和使用客户端的情况):需要将所有证书签名common-name设置成自己本机的IP。 客户使用:需要使用本机IP设置签名证书的请求common-name 说明:一般情况下,提示SSL失败的情况,基本都是秘钥和证书生成的问题。遇到这种情况,可以尝试重新生成证书请求文件,使用本机的IP添写证书请求文件的con
MQTT服务器(Broker)列表
IBM Websphere MQ Telemetry : The Telemetry MQTT feature is built-in optionally licensed feature in WebSphere MQ version 7.1 and above. It provides full MQTT v3.1 support, IBM MQ and JMS support. IBM We
微信公众平台生成二维码海报是如何做到的 哪位大神讲解下
微信公众平台生成二维码海报是如何做到的 哪位大神讲解下
谁能给讲解下函数依赖啊
谁能给讲解下函数依赖啊 最好结合下例子 我在网上找了写资料但是不是很明白rnrn先谢谢大家了!!
php安装mqtt扩展【Mosquitto】
没有安装mosquitto的可以看一下链接先安装一下 MQTT服务器搭建-mosquitto1.4.4安装指南 然后我们来安装php扩展 如果你已经使用预先建立的软件包来安装Mosquitto,你需要确保你已经安装了开发头文件。在红帽派生的系统上,这可能是叫做libmosquitto-devel,在基于 Debian的系统上叫做libmosquitto-dev。 你可以使用pecl来来安装这个拓展...
Mac下的mosquitto 基于MQTT消息推送
1、安装mosquitto代理服务器brew install mosquitto,需要首先安装brew,如果提示不在支持brew,请把/usr/local目录的权限改为当前用户;2、启动mosquitto停止服务  brew services stop mosquitto启动服务  brew services start mosquitto如果还是提示“连接被拒绝”,请尝试指定配置文件启动 mos...
使用mosquitto开发MQTT客户端
1. 下载并安装openSSL, mosquitto 应用程序运行时会用到 http://slproweb.com/products/Win32OpenSSL.html   2. 下载并安装mosquitto http://mosquitto.org/download/ 3. 使用 1)在cmd窗口中,启动Mosquito的MQTT服务 C:\Program Files\mosqui...
MQTT初体验mosquitto的安装和使用
一、简单介绍          MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。(以上内容来源百度) 二、环境介绍 1、系统环境 :centos (
MQTT mosquitto客户端Java库
MQTT mosquitto客户端Java库
MQTT mosquitto的PC端客户端
解压,运行\ia92\J2SE\wmqttSample.jar即可
mqtt消息中间件Mosquitto的安装和配置
Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1.1。 MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。目前已经是物联网消息通信事实上的标准协议了。   值得一提的是mqtt提供三种不同质量的消息服务: “至多一次...
mqtt服务端mosquitto的安装和使用
最近公司的智能工厂项目要做个小东西,向客户工厂的终端设备推送设计方案,之前是别人做了一半的东西,用的mqtt,尼玛接手过来他们的代码,mqtt客户端可以连到服务器,但是不能推送或订阅消息,跟mosquitto通信配置的是双向SSL,估计问题是出在这里,但是检查了配置,没看出啥破绽,加上之前我也没搞过mqtt,索性从头来练练,技术这玩意儿,就是别人制定的套路,你要用,就的摸清别人的套路 【1】进入
怎么做接口,高手帮下讲解下
我是新人,在一家公司上班,经理让我做一个接口,从自己的网站上跳转到别人的网站,引导用户注册登录!然后在进行数据查询,登录到别人网站的后台提取用户的数据,拿到自己的网站上,进行排版吧!rn经理一直说流程!具体怎么写我真是一头雾水啊!他就说不懂就问,问了他就讲流程!郁闷啊,有个同事都顶不住压力走了!现在真是太头疼了!rn有没有高手帮下忙具体讲下到底该怎么做啊!谢谢了....
MQTT学习笔记-Mosquitto的安装与启动
Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。 在ubuntu下的安装方法:sudo apt-get install mosquitto 启动的方法: mosquitto -c /etc/mosquitto/mosquitto.conf
MQTT 初体验——mosquitto 的安装与使用
MQTT是什么?  MQTT(MQ Telemetry Transport,消息队列遥测传输)是近年来出现的一种新型协议,物联网领域也许会将其作为标准协议。MQTT 原本是 IBM 公司开发的协议,现在已经开源了,被更多人共同开发着。   MQTT 是一种能实现一对多通信(通常被称为发布/订阅型)的协议。如下图所示,它由三部分组成,分别是代理服务或中介(broker)、发布者(publisher)
MQTT服务器Mosquitto安装及使用
对于MQTT还比较陌生的小伙伴可以参考以下文章: MQTT入门篇 MQTT协议中文版 MQTT官网 一、Mosquitto安装 1.安装命令:控制台直接输入 brew install mosquitto 然后静静等待。。。。。。。。。。 看到如下图片就快接近胜利了! 这时候我们就可以开启我们的服务啦! 2.输入:brew services start mosquit
MAC 下配置MQTT 服务器Mosquitto
一.简单介绍   1.MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。    2.Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。更多资料请访问:MQTT官网:点这里 二. Mosquitto 
求大神详细讲解下KDbg的使用方法
我用的KDbg的2.0.2版本的 而且全是英文 英文不好 看不懂啊
有一处python代码请大神讲解下
[code=python]rndef connect(*args, **kwargs): # real signature unknownrn """rn Constructor for creating a connection to the database. Returns arn Connection object.rn rn :param server: database hostrn :type server: stringrn :param user: database user to connect as. Default value: None.rn :type user: stringrn :param password: user's password. Default value: None.rn :type password: stringrn :param database: the database to initially connect torn :type database: stringrn :param timeout: query timeout in seconds, default 0 (no timeout)rn :type timeout: intrn :param login_timeout: timeout for connection and login in seconds, default 60rn :type login_timeout: intrn :param charset: character set with which to connect to the databasern :type charset: stringrn :keyword as_dict: whether rows should be returned as dictionaries instead of tuples.rn :type as_dict: booleanrn :keyword appname: Set the application name to use for the connectionrn :type appname: stringrn :keyword port: the TCP port to use to connect to the serverrn :type port: stringrn :keyword conn_properties: SQL queries to send to the server upon connectionrn establishment. Can be a string or another kindrn of iterable of stringsrn :keyword autocommit: Whether to use default autocommiting mode or notrn :type autocommit: booleanrn :keyword tds_version: TDS protocol version to use.rn :type tds_version: stringrn """rn passrnrnrn[/code]rnrn上面代码是 pymssql 里面获取数据库连接的函数,奇怪的是 里面的代码块是pass 。却可以使用pymssql.connect()获取 connection对象,有研究的大神可以告知下吗
哪位大神知道阿里云的断点续传怎么做啊
哪位大神知道阿里云的断点续传怎么做啊,跪求
求大神帮忙讲解下路由转发
现在有一个带双网卡的服务器,一个口连接外网交换机,服务器的外网ip是1.1.1.1,一个口连接内网交换机,服务器的内网ip是2.2.2.2,服务器有个程序需要同时访问内网和外网,现在我想把外网交换机和内网交换机直接相连,通过某种配置的方式让服务器通;过内网交换机访问外网,从而节约一个网口,可行吗?怎么配置呢?
求大神讲解下这段代码的意思。
#include rnrnint p,t,a,d,c,v,i,m[90]=0,s,r[]=-10,-9,-8,-1,1,8,9,10;rnvoid k()if(m[p]==0)rnfor(i=0;i<8;i++)rn for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])rn c++;rn if(c&&m[v]==t)rn a+=c;v=p;rn if(d)rn do m[v]=t,v+=r[i];rn while(m[v]!=t);rn rn rn rnchar*h=" - o x\n";rnrnint main()rn for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)rn m[40]=m[50]=t=s=1;rn for(;;a=d=0)rn for(p=9;p<82;++p)k(),rn printf("%.2s",&h[m[p]*2]);rn if(a)rn for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d",&p,&i),p+=i*9):++p;else if(s)s=0,printf("pass");rn else rn break;rn t=3-t;rn return 0;rnrn
哪位哥哥给讲解下这个函数
$PBExportHeader$n_cst_crc.srurn$PBExportComments$Export rnforwardrnglobal type n_cst_crc from nonvisualobjectrnend typernrnend forwardrnrnshared variablesrnn_cst_numerical snv_numericalrninteger si_crc16table[256] =0,4129,8258,12387,16516,20645,24774,28903,-32504,-28375,-24246,-20117,-15988,-11859,-7730,-3601,4657,528,12915,8786,21173,17044,29431,25302,-27847,-31976,-19589,-23718,-11331,-15460,-3073,-7202,9314,13379,1056,5121,25830,29895,17572,21637,-23190,-19125,-31448,-27383,-6674,-2609,-14932,-10867,13907,9842,5649,1584,30423,26358,22165,18100,-18597,-22662,-26855,-30920,-2081,-6146,-10339,-14404,18628,22757,26758,30887,2112,6241,10242,14371,-13876,-9747,-5746,-1617,-30392,-26263,-22262,-18133,23285,19156,31415,27286,6769,2640,14899,10770,-9219,-13348,-1089,-5218,-25735,-29864,-17605,-21734,27814,31879,19684,23749,11298,15363,3168,7233,-4690,-625,-12820,-8755,-21206,-17141,-29336,-25271,32407,28342,24277,20212,15891,11826,7761,3696,-97,-4162,-8227,-12292,-16613,-20678,-24743,-28808,-28280,-32343,-20022,-24085,-12020,-16083,-3762,-7825,4224,161,12482,8419,20484,16421,28742,24679,-31815,-27752,-23557,-19494,-15555,-11492,-7297,-3234,689,4752,8947,13010,16949,21012,25207,29270,-18966,-23093,-27224,-31351,-2706,-6833,-10964,-15091,13538,9411,5280,1153,29798,25671,21540,17413,-22565,-18438,-30823,-26696,-6305,-2178,-14563,-10436,9939,14066,1681,5808,26199,30326,17941,22068,-9908,-13971,-1778,-5841,-26168,-30231,-18038,-22101,22596,18533,30726,26663,6336,2273,14466,10403,-13443,-9380,-5313,-1250,-29703,-25640,-21573,-17510,19061,23124,27191,31254,2801,6864,10931,14994,-722,-4849,-8852,-12979,-16982,-21109,-25112,-29239,31782,27655,23652,19525,15522,11395,7392,3265,-4321,-194,-12451,-8324,-20581,-16454,-28711,-24584,28183,32310,20053,24180,11923,16050,3793,7920rnlong sl_crc32table[256] =0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,-1742489888,-1662866601,-1851683442,-1788833735,-1960329156,-1880695413,-2103051438,-2040207643,-1104454824,-1159051537,-1213636554,-1284997759,-1389417084,-1444007885,-1532160278,-1603531939,-734892656,-789352409,-575645954,-646886583,-952755380,-1007220997,-827056094,-898286187,-231047128,-151282273,-71779514,-8804623,-515967244,-436212925,-390279782,-327299027,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,-1398421865,-1469785312,-1524105735,-1578704818,-1079922613,-1151291908,-1239184603,-1293773166,-1968362705,-1905510760,-2094067647,-2014441994,-1716953613,-1654112188,-1876203875,-1796572374,-525066777,-462094256,-382327159,-302564546,-206542021,-143559028,-97365931,-17609246,-960696225,-1031934488,-817968335,-872425850,-709327229,-780559564,-600130067,-654598054,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,-248556018,-168932423,-122852000,-60002089,-500490030,-420856475,-341238852,-278395381,-685261898,-739858943,-559578920,-630940305,-1004286614,-1058877219,-845023740,-916395085,-1119974018,-1174433591,-1262701040,-1333941337,-1371866206,-1426332139,-1481064244,-1552294533,-1690935098,-1611170447,-1833673816,-1770699233,-2009983462,-1930228819,-2119160460,-2056179517,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,-978770311,-1050133554,-869589737,-924188512,-693284699,-764654318,-550540341,-605129092,-475935807,-413084042,-366743377,-287118056,-257573603,-194731862,-114850189,-35218492,-1984365303,-1921392450,-2143631769,-2063868976,-1698919467,-1635936670,-1824608069,-1744851700,-1347415887,-1418654458,-1506661409,-1561119128,-1129027987,-1200260134,-1254728445,-1309196108rnend variablesrnrnglobal type n_cst_crc from nonvisualobject autoinstantiaternrnend typernglobal n_cst_crc n_cst_crcrnrnrnforward prototypesrnPrivate subroutine of_initcrc16 ()rnPrivate subroutine of_initcrc32 ()rnPublic function ulong of_crc32 (readonly string as_data,long al_crc)rnPublic function uint of_crc16 (readonly string as_data,integer ai_crc)rnend prototypesrnPrivate subroutine of_initcrc16 ();//Private function of_initcrc16 (none) returns (none)rninteger li_crcrninteger li_irninteger li_jrnrnrnFOR li_i = 0 TO 255 //0rn li_crc = li_i * 256rn FOR li_j = 0 TO 7 //2rn IF snv_numerical.of_getbit(li_crc,16) THEN //44rn li_crc = snv_numerical.of_bitwisexor(li_crc * 2,4129)rn CONTINUErn END IF //44rn li_crc = snv_numerical.of_bitwisexor(li_crc * 2,0)rn NEXT //2rn si_crc16table;li_i + 1 -- = li_crcrnNEXT //0rnrnend subroutinernPrivate subroutine of_initcrc32 ();//Private function of_initcrc32 (none) returns (none)rnlong ll_crcrninteger li_irninteger li_jrnrnrnFOR li_i = 0 TO 255 //0rn ll_crc = li_i * 16777216rn FOR li_j = 0 TO 7 //2rn IF snv_numerical.of_getbit(ll_crc,32) THEN //44rn ll_crc = snv_numerical.of_bitwisexor(ll_crc * 2,79764919)rn CONTINUErn END IF //44rn ll_crc = snv_numerical.of_bitwisexor(ll_crc * 2,0)rn NEXT //2rn sl_crc32table;li_i + 1 -- = ll_crcrnNEXT //0rnrnend subroutinernPublic function ulong of_crc32 (readonly string as_data,long al_crc);//Public function of_crc32 (readonly string as_data,long al_crc) returns ulong rn//string as_datarn//long al_crcrninteger li_irninteger li_lrnrnrnli_l = len(as_data)rnFOR li_i = 1 TO li_l //1rn al_crc;snv_numerical = sl_crc32table.of_bitwisexor(snv_numerical.of_bitwiseand(snv_numerical.of_bitwisexor(al_crc / 16777216,asc(mid(as_data,li_i,1))),255) + 1 --,al_crc * 256)rnNEXT //1rnRETURN al_crcrnrnend functionrnPublic function uint of_crc16 (readonly string as_data,integer ai_crc);//Public function of_crc16 (readonly string as_data,integer ai_crc) returns uint rn//string as_datarn//integer ai_crcrninteger li_irninteger li_lrnrnrnli_l = len(as_data)rnFOR li_i = 1 TO li_l //1rn ai_crc;snv_numerical = si_crc16table.of_bitwisexor(snv_numerical.of_bitwiseand(snv_numerical.of_bitwisexor(ai_crc / 256,asc(mid(as_data,li_i,1))),255) + 1 --,ai_crc * 256)rnNEXT //1rnRETURN ai_crcrnrnend functionrnon n_cst_crc.creatern//create (none) returns (none)rnrnrnTHIS.triggerevent("constructor")rnrnend onrnrnon n_cst_crc.destroyrn//destroy (none) returns (none)rnrnrnTHIS.triggerevent("destructor")rnrnend onrn
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview