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

php网站开发系统做书app下载网站有哪些

php网站开发系统,做书app下载网站有哪些,网页平台,网站管理平台扩展插件场景 SpringBootVue整合WebSocket实现前后端消息推送#xff1a; SpringBootVue整合WebSocket实现前后端消息推送_websocket vue3.0 springboot 往客户端推送-CSDN博客 上面实现ws推送数据流程后#xff0c;需要在windows上使用ws客户端定时记录收到的数据到文件中#x…场景 SpringBootVue整合WebSocket实现前后端消息推送 SpringBootVue整合WebSocket实现前后端消息推送_websocket vue3.0 springboot 往客户端推送-CSDN博客 上面实现ws推送数据流程后需要在windows上使用ws客户端定时记录收到的数据到文件中这里 文件使用SQLite数据库进行存储。 Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作 Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作_winform sqllite-CSDN博客 Sqlite的操作参考如上。 注 博客霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客 实现 1、引入WebSocket4Net依赖 使用Nuget搜索并安装WebSocket4Net 2、设计页面布局如下 3、websocket客户端实现 声明客户端对象 public static WebSocket4Net.WebSocket webSocket4NetClient null; ws连接按钮的点击事件中 try {var wsAddresss textBox_ws_address.Text.Trim();webSocket4NetClient new WebSocket4Net.WebSocket(wsAddresss);webSocket4NetClient.Opened WebSocket4Net_Opened;webSocket4NetClient.Error Websocket_Error;webSocket4NetClient.Closed new EventHandler(Websocket_Closed);webSocket4NetClient.MessageReceived WebSocket4Net_MessageReceived;webSocket4NetClient.Open();textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :ws开始连接);textBox_log.AppendText(\r\n);} catch (Exception exception) {textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :ws连接异常: exception.Message);textBox_log.AppendText(\r\n);} 这里未添加对ws地址的校验只关注中间ws相关的代码 webSocket4NetClient new WebSocket4Net.WebSocket(wsAddresss);webSocket4NetClient.Opened WebSocket4Net_Opened;webSocket4NetClient.Error Websocket_Error;webSocket4NetClient.Closed new EventHandler(Websocket_Closed);webSocket4NetClient.MessageReceived WebSocket4Net_MessageReceived;webSocket4NetClient.Open(); 然后编写其各种事件的具体实现。 实现方法中具体逻辑根据业务进行确定。 建立连接事件实现 private void WebSocket4Net_Opened(object sender, EventArgs e){//允许跨线程调用Control.CheckForIllegalCrossThreadCalls false;textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :ws建立连接成功);textBox_log.AppendText(\r\n);//向服务端发送消息//webSocket4NetClient.Send(Client准备发送数据);} 收到消息事件实现 private void WebSocket4Net_MessageReceived(object sender, MessageReceivedEventArgs e){//允许跨线程调用Control.CheckForIllegalCrossThreadCalls false;//textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :收到消息:);//textBox_log.AppendText(\r\n);receviceString e.Message;} 出错事件实现 private void Websocket_Error(object sender, EventArgs e){//允许跨线程调用Control.CheckForIllegalCrossThreadCalls false;textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :Websocket_Error:e);textBox_log.AppendText(\r\n);} 连接关闭事件实现 private void Websocket_Closed(object sender, EventArgs e){//允许跨线程调用Control.CheckForIllegalCrossThreadCalls false;textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :Websocket_Closed);textBox_log.AppendText(\r\n);} ws连接关闭按钮点击实现 private void button_ws_disconnec_Click(object sender, EventArgs e){webSocket4NetClient.Close();} 4、定时存储实现 在上面收到消息时将数据赋值给变量 receviceString 声明变量 private string receviceString String.Empty; 添加Timer定时器 Timer _timer new Timer(); 定时存储按钮点击事件实现 private void button_start_store_Click(object sender, EventArgs e){if (webSocket4NetClient.State ! WebSocket4Net.WebSocketState.Open webSocket4NetClient.State ! WebSocket4Net.WebSocketState.Connecting){textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :Websocket连接异常);textBox_log.AppendText(\r\n);}else {//清空数据库SQLiteDataReader reader Global.Instance.sqlLiteHelper.ExecuteQuery(SELECT* FROM positions;);if (reader.HasRows){while (reader.Read()){Global.Instance.sqlLiteHelper.ExecuteQuery(DELETE FROM positions WHERE timestamp reader.GetString(reader.GetOrdinal(timestamp)) ;);}}_timer.Interval (int)numericUpDown_rate.Value;_timer.Tick _timer_Tick;_timer.Start();textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :定时存储已经启动!!);textBox_log.AppendText(\r\n);}} 首先判断ws是否连接上如果连接上则将库清空然后获取设置的定时频率并启动定时器 定时器具体实现 private void _timer_Tick(object sender, EventArgs e) {try{if (webSocket4NetClient.State ! WebSocket4Net.WebSocketState.Open webSocket4NetClient.State ! WebSocket4Net.WebSocketState.Connecting){textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :Websocket连接异常);textBox_log.AppendText(\r\n);}else {if (!String.IsNullOrEmpty(receviceString)){//获取ws数据并存储进数据库TimeSpan ts DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);string timeSpan Convert.ToInt64(ts.TotalSeconds).ToString();//插入数据Global.Instance.sqlLiteHelper.InsertValues(positions, new string[] { timeSpan, receviceString });receviceString String.Empty;}}}catch (Exception exception){textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :定时存储执行异常 exception.Message);textBox_log.AppendText(\r\n);}        } 首页也要判断是否连接然后判断receviceString是否为空避免ws未传输数据会定时存储空数据。 不为空则将时间和收到的数据存储进数据库。 停止定时存储按钮点击事件 private void button_stop_store_Click(object sender, EventArgs e){//停止定时器_timer.Tick - _timer_Tick;_timer.Stop();textBox_log.AppendText(DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) :定时存储已经停止!!);textBox_log.AppendText(\r\n);receviceString String.Empty;} 5、运行效果
http://www.w-s-a.com/news/842342/

相关文章:

  • 哪个网站有淘宝做图的素材网站分享做描点链接
  • 做哪个网站零售最好网站空间在哪里
  • 荆州网站建设多少钱南阳做网站推广
  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到
  • 金华官方网站建设网络营销策划模板
  • 网站开发到上线在线生成小程序
  • 动易网站设计方案郑州营销网站建设
  • 怎么上网站做简易注销的步骤郑州大学现代远程教育《网页设计与网站建设》课程考核要求
  • 新乡网站建设新乡长沙本地论坛有哪些
  • 潍坊中企动力做的网站怎么样wordpress接入微博
  • 网站开发者所有权归属网站项目建设的必要性
  • 菜鸟网站编程广州网站设计权威乐云践新
  • 网站做接口到app 价格大地资源免费视频观看
  • 怎么给钓鱼网站做防红网站建设相关的
  • 教育培训的网站建设湖南网站建设小公司
  • 福建南平网站建设创意交易平台网
  • 做直播网站要哪些技术内容营销理论
  • 价格划算的网站开发怎么找有赞做网站
  • 做网站店铺图片用什么软件网络营销方案格式
  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件