当前位置: 首页 > wzjs >正文

wordpress网站如何引流seo专业优化公司

wordpress网站如何引流,seo专业优化公司,好看的网站首页图片,小程序开发用什么语言程序作为MQTT的服务端,也是WebApi 接口地址,在Web页面中MQTTJS用的是Websocker协议,在Winfrom中用MQTT协议。导致程序需要启动两个端口。直接上代码 创建服务 引用包:MQTTnet,MQTTnet.AspNetCore,这包最新…

程序作为MQTT的服务端,也是WebApi 接口地址,在Web页面中MQTTJS用的是Websocker协议,在Winfrom中用MQTT协议。导致程序需要启动两个端口。直接上代码

创建服务

引用包:MQTTnet,MQTTnet.AspNetCore,这包最新的5.*,我引用的是4.3.7.1207。5.*的包在接收消息的处理方式略微不同

MqttConfigServer

  public class MqttConfigServer{/// <summary>/// 客户端最大连接数/// </summary>public int MaxPendingPerClient { get; set; }/// <summary>/// Mqtt端口/// </summary>public int MqttPort { get; set; }/// <summary>/// MqttWs端口/// </summary>public int MqttWsPort { get; set; }/// <summary>/// MqttWs路径/// </summary>public string MqttWsPath { get; set; }}

这是拓展的方法,添加mqtt服务
AppInfo.GetOptions() 这是获取配置文件

 /// <summary>/// 添加mqtt服务/// </summary>/// <param name="services"></param>/// <param name="webHostBuilder"></param>public static void AddMqttService(this IServiceCollection services, IWebHostBuilder webHostBuilder){var mqttServerConfig = AppInfo.GetOptions<MqttConfigServer>();webHostBuilder.ConfigureKestrel((context, serverOptions) =>{//配置Mqtt端口serverOptions.ListenAnyIP(mqttServerConfig.MqttPort, options => options.UseMqtt());//配置web端口serverOptions.ListenAnyIP(mqttServerConfig.MqttWsPort);});//配置MQTT服务services.AddHostedMqttServerWithServices(options =>{options.WithoutDefaultEndpoint();options.WithMaxPendingMessagesPerClient(mqttServerConfig.MaxPendingPerClient);options.WithKeepAlive();});services.AddMqttConnectionHandler();services.AddConnections();//注入单例mqtt侦听服务services.AddSingleton<MyMqttService>();}

MyMqttService

public class MyMqttService
{public MyMqttService(){ }public Task Server_ApplicationMessageNotConsumedAsync(ApplicationMessageNotConsumedEventArgs arg){Console.WriteLine($"客户端:【{arg.SenderId}】,主题【{arg.ApplicationMessage.Topic}】收到消息:{System.Text.Encoding.Default.GetString(arg.ApplicationMessage.PayloadSegment)}");return Task.CompletedTask;}/// <summary>/// 客户端验证账号密码/// </summary>/// <param name="arg"></param>/// <returns></returns>public Task Server_ValidatingConnectionAsync(ValidatingConnectionEventArgs arg){Console.WriteLine($"{arg.ClientId} 上线了,{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");return Task.CompletedTask;}/// <summary>/// 侦听所有消息/// </summary>/// <param name="arg"></param>/// <returns></returns>public async Task Server_InterceptingPublishAsync(InterceptingPublishEventArgs arg){Console.WriteLine($"侦听所有消息:【{arg.ClientId}】,主题【{arg.ApplicationMessage.Topic}】收到消息:{System.Text.Encoding.Default.GetString(arg.ApplicationMessage.PayloadSegment)}");await Task.CompletedTask;return;}/// <summary>/// 客户端断开连接/// </summary>/// <param name="arg"></param>/// <returns></returns>public Task Server_ClientDisconnectedAsync(ClientDisconnectedEventArgs arg){Console.WriteLine($"【{arg.ClientId}】 下线了,{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");return Task.CompletedTask;}/// <summary>/// 客户端上线/// </summary>/// <param name="arg"></param>/// <returns></returns>public Task Server_ClientConnectedAsync(ClientConnectedEventArgs arg){Console.WriteLine($"{arg.ClientId} 上线了,{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");return Task.CompletedTask;}/// <summary>/// 客户端取消订阅/// </summary>/// <param name="arg"></param>/// <returns></returns>public Task Server_ClientUnsubscribedTopicAsync(ClientUnsubscribedTopicEventArgs arg){return Task.CompletedTask;}/// <summary>/// 客户端订阅/// </summary>/// <param name="arg"></param>/// <returns></returns>public Task Server_ClientSubscribedTopicAsync(ClientSubscribedTopicEventArgs arg){return Task.CompletedTask;}/// <summary>/// 客户端保留消息/// </summary>/// <param name="arg"></param>/// <returns></returns>public Task Server_RetainedMessageChangedAsync(RetainedMessageChangedEventArgs arg){Console.WriteLine($"收到消息:{arg.ClientId}");return Task.CompletedTask;}
}

在Program 添加mqtt 服务

  //添加Mqtt服务services.AddMqttService(builder.WebHost);var mqttServerConfig = AppInfo.GetOptions<MqttConfigServer>();//WsMqtt 路径app.MapConnectionHandler<MqttConnectionHandler>(mqttServerConfig.MqttWsPath, http => http.WebSockets.SubProtocolSelector = protocolList => protocolList.FirstOrDefault() ?? string.Empty);var mqttService = app.Services.GetRequiredService<MyMqttService>();//加载MQTT回调app.UseMqttServer(server =>{//验证账号密码server.ValidatingConnectionAsync += mqttService.Server_ValidatingConnectionAsync;//侦听为消费消息server.ApplicationMessageNotConsumedAsync += mqttService.Server_ApplicationMessageNotConsumedAsync;//侦听所有消息server.InterceptingPublishAsync += mqttService.Server_InterceptingPublishAsync;//客户端订阅消息server.ClientSubscribedTopicAsync += mqttService.Server_ClientSubscribedTopicAsync;//客户端取消订阅消息server.ClientUnsubscribedTopicAsync += mqttService.Server_ClientUnsubscribedTopicAsync;//客户端链接事件server.ClientConnectedAsync += mqttService.Server_ClientConnectedAsync;//客户端关闭事件server.ClientDisconnectedAsync += mqttService.Server_ClientDisconnectedAsync;//保留消息server.RetainedMessageChangedAsync += mqttService.Server_RetainedMessageChangedAsync;});

mqttconfig

{"maxPendingPerClient": 1000, //客户端最大等待连接数"mqttPort": 1883, //mqtt端口"mqttWsPort": 8083, //mqtt websocket端口"mqttWsPath": "/mqtt" //mqtt websocket路径}

这样服务就完成,这里mqtt 服务并不影响WebApi 的接口,只是启动的两个端口

服务端主动推送消息

 private IServiceProvider _serviceProvider;public ClientControlController(IServiceProvider serviceProvider){_serviceProvider = serviceProvider;}/// <summary>/// 服务端推送消息/// </summary>/// <returns></returns>private async Task PushMsg(string topic, ClientControl control){var server = _serviceProvider.GetService<MqttHostedServer>() as MqttServer;//获取客户端var client = (await server?.GetClientsAsync()).Where(m => m.Id == "HardwareService").FirstOrDefault();//推送消息var payload = JsonConvert.SerializeObject(control);var message = new MqttApplicationMessageBuilder().WithTopic(topic)//主题.WithPayload(payload).Build();if (client != null){await server.InjectApplicationMessage(new InjectedMqttApplicationMessage(message){SenderClientId = client.Id,});}}
http://www.dtcms.com/wzjs/508100.html

相关文章:

  • 广州网站设计成功柚米科技google网站登录入口
  • 怎么做网站流量附近的教育培训机构有哪些
  • 黄山网站开发抖音营销软件
  • 网站建设售后协议小网站广告投放
  • 网站几种颜色新品推广策划方案
  • 龙华做网站哪家便宜上海网络营销
  • 美国网站加速器wordpress
  • 做网站分期付款比例百度云
  • 网站开发服务外包合同企业邮箱登录入口
  • 怎样在手机上面建设网站如何制作一个个人网站
  • 商业网站建设案例课程百度云杭州seo薪资水平
  • 深圳惠州网站建设合肥百度推广公司哪家好
  • 有没有网站学做总结泰安网站seo推广
  • 深圳龙岗网站建设哪家好公司网络游戏推广怎么做
  • 免费微网站怎么做百度指数属于行业趋势及人群
  • 怎么配置网站服务器深圳网站建设找哪家公司好
  • 点击最多的网站bt磁力搜索器
  • 个人网站不能有盈利性质友情链接出售
  • 武汉网站建设网站推广seo流量是什么
  • 韩国做美食的视频网站赵阳竞价培训
  • 江苏建设工程招标网官方网站网站免费搭建平台
  • 有哪些企业可以做招聘的网站有哪些内容百度推广怎么弄
  • 免费网站制作app上海seo关键词优化
  • 网站建设业务需求文档刚刚中国宣布重大消息
  • 做网站技术选择什么软件引流客源最快
  • 网站一般宽度重庆森林经典台词梁朝伟
  • 网站内容做淘宝店铺链接影响排名吗数据分析工具
  • 网站建设需要经过哪几个步骤怎么制作网站?
  • 找单位做网站需要注意什么合肥关键词排名
  • 有什么可以做兼职的正规网站广州优化公司哪家好