MessageList

跨境电商申报订单加签申报

你离开我真会死。 提交于 2020-11-19 05:16:00
public class CEBSignClient { public void StartSignClient() { } private static SignClientConfig _signClientConfig; public static SignClientConfig CebSignClientConfig { get { return _signClientConfig; } set { _signClientConfig = value; } } public static SignClientConfig GetCebSignClientConfig() { if (_signClientConfig == null) { _signClientConfig = new SignClientConfig(); } return _signClientConfig; } public static void SetCebSignClientConfig(SignClientConfig CebSignClientConfig) { _signClientConfig = CebSignClientConfig; } /// <summary> /// 处理报文加签服务64位 /// </summary> /// <param name=

仿照微信分页上滑加载更多

有些话、适合烂在心里 提交于 2020-08-08 11:20:31
<div className="right_Sco" id="scoID" onScrollCapture={() => this.handleOnScroll()} ref={dom => {this.dom = dom}}> </div> .right_Sco{ overflow-y: scroll; height: 482px; width:100%; } // 加载更多 handleOnScroll=()=>{ let that = this; that.handleMore(); }; // 处理更多 handleMore(){ let that = this; const {nextReqMessageID,conversationID,messageList,xAll} = this.state; if (that.dom) { const contentScrollTop = that.dom.scrollTop; var x = 0; if (contentScrollTop<10){ if (xAll === undefined){ x = that.dom.scrollHeight - that.dom.scrollTop; }else { x = xAll; } console.log('当前位置===',x); let promise = tim

laravel整合workerman做消息推送系统

独自空忆成欢 提交于 2020-05-09 07:07:51
官方建议分离 workerman和mvc框架的结合,我去,这不是有点脑缺氧吗? 大量的业务逻辑,去独立增加方法和类库在写一次,实际业务中是不现实和不实际的 gateway增加一些这方面的工作,但是我看了源码之后,就发现还是只能自己做 先增加composer require workerman/workerman 或者walkor/workerman ,但是官方的github是 walkor/workerman,注意一下 可以去 https://packagist.org查看是否有包 首先结合Console做命令 建立一个Command <? php namespace App\Console\Commands; use Illuminate\Console\Command; use Workerman\Worker; use App\Work\WorkermanWork; class Workerman extends Command { protected $taskserver ; /* * 操作参数 * 注意只能在 * start 启动 * stop 停止 * relaod 只能重启逻辑代码,核心workerman_init无法重启,注意看官方文档 * status 查看状态 * connections 查看连接状态(需要Workerman版本>=3.5.0) * */

uni-app聊天室|vue+uniapp仿微信聊天实例|uniapp仿微信App界面

与世无争的帅哥 提交于 2020-04-28 02:56:16
一、介绍 运用UniApp+Vue+Vuex+swiper+uniPop等技术开发的仿微信原生App聊天室|仿微信聊天界面实例项目uniapp-chatroom,实现了发送图文消息、表情(gif图),图片预览、地图位置、长按菜单、红包/钱包、仿微信朋友圈等功能。 二、测试效果 H5 + 小程序 + App端测试效果如下,实测多端效果均为一致。( 后续大图统一展示App端 ) 二、技术选型 编辑器:HBuilder X 技术框架:uni-app + vue 状态管理:Vuex iconfont图标:阿里字体图标库 自定义导航栏 + 底部Tabbar 弹窗组件:uniPop(基于uni-app封装模态弹窗) 测试环境:H5端 + 小程序 + App端(三端均兼容) 高德地图:vue-amap ◆ 顶部导航栏headerBar 顶部导航栏采用的是自定义模式,具体可参看这篇文章: uni-app自定义导航栏按钮|uniapp仿微信顶部导航条 在pages.json里面配置globalStyle,将navigationStyle设为custom时,原生顶部导航栏不显示,这时就能自定义导航栏 "globalStyle": {"navigationStyle": "custom"} ◆ 引入公共样式/组件及全局弹窗 import Vue from 'vue' import App from '.

async,await执行流看不懂?看完这篇以后再也不会了

自作多情 提交于 2020-04-23 22:32:22
昨天有朋友在公众号发消息说看不懂await,async执行流,其实看不懂太正常了,因为你没经过社会的毒打,没吃过牢饭就不知道自由有多重要,没生过病就不知道健康有多重要,没用过ContinueWith就不知道await,async有多重要,下面我举两个案例佐证一下? 一:案例一 【嵌套下的异步】 写了这么多年的程序,相信大家都知道连接数据库少不了这几个对象,DbConnection,DbCommand,DbDataReader等等。。先来看看ContinueWith在连接数据库时嵌套过深的尴尬。 1. NetFramework 4.0之前的写法 这个时期的代码没有什么好说的,都是程式代码,一撸到底,简洁明了。 public static int SyncGetCount() { using (var connection = new MySqlConnection("server=xxx.xxx.xxx.xxx;userid=xxx;password=xxx;database=xxx;charset=utf8;port=3306;")) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "select count(1) from messages"

async,await执行流看不懂?看完这篇以后再也不会了

孤人 提交于 2020-04-23 22:00:41
昨天有朋友在公众号发消息说看不懂await,async执行流,其实看不懂太正常了,因为你没经过社会的毒打,没吃过牢饭就不知道自由有多重要,没生过病就不知道健康有多重要,没用过ContinueWith就不知道await,async有多重要,下面我举两个案例佐证一下? 一:案例一 【嵌套下的异步】 写了这么多年的程序,相信大家都知道连接数据库少不了这几个对象,DbConnection,DbCommand,DbDataReader等等。。先来看看ContinueWith在连接数据库时嵌套过深的尴尬。 1. NetFramework 4.0之前的写法 这个时期的代码没有什么好说的,都是程式代码,一撸到底,简洁明了。 public static int SyncGetCount() { using (var connection = new MySqlConnection("server=xxx.xxx.xxx.xxx;userid=xxx;password=xxx;database=xxx;charset=utf8;port=3306;")) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "select count(1) from messages"

记一次性能优化(线程相关)

耗尽温柔 提交于 2020-04-17 23:54:21
最近一直在负责业务监控告警相关的开发;由于组织架构调整,从原来的服务端架构组分离出来成立工程效率组,很多原来不是我们组负责的项目也开始陆续交接到了我们手里; 以前一直由业务部门负责开发的sensoragent项目就是由我来交接,交接的时候才发现有很多问题,该应用是业务部门用来从MQ消费消息往神策发送数据的,由于数据量很大,该应用在生产已经扩大到了12点,而我们普通应用在生产也就四个点;虽然已经扩大到了12点,生产仍然有很大的消息堆积来不及处理,所以每天都能收到大量的消息堆积告警; 部门领导也跟我强调说,生产12个点仍然积压,服务肯定是有问题的,因为我最近单独负责神策指标收集系统的开发,所以和这个系统相关的指标发送系统的排查任务也就落到了我的头上。 下图是我的告警(目前公司只有开发运维角色才会接收到告警) 因为这两天迭代结束,有时间来处理下自己交接项目的一个分析和优化: 我查看了应用在openshift里面的一些情况,同时也分析了一下granfa上面的应用运行状况:在看到openshift里面的时候发现了一些端倪:如图 项目里用到了十个线程去消费 MQ的数据,但是openshift上面可以看出,每次只有一个线程在处理,而且会出现Blocked的情况: 点开以后发现blocked的线程阻塞在send方法: @Override public void send(Map<String,

iOS使用核心的50行代码实现一个路由组件

梦想的初衷 提交于 2020-02-29 03:15:18
使用组件化是为了解耦处理,多个模块之间通过协议进行交互。而负责解析协议,找到目的控制器,或者是返回对象给调用者的这个组件就是路由组件。本文讲解如何使用核心的50行代码实现一个路由组件。 本文包含以下内容: 组件化和路由 路由的实现 路由注册实现 路由使用实现 客户端的使用 一些小想法 提供一个Demo可以在 YTRouterDemo 这里找到这里找到 组件化和路由 之前看过挺多的关于路由管理、路由处理的文章,常常会和组件化出现在一起,一开始不知道为何路由和组件化出现在一起,后来公司的项目中使用了路由组件(他本身也是一个组件,确切的说是一个中间人或者中介者),才突然想明白了,原来如此。 使用组件化是为了解耦处理,多个模块之间通过协议进行交互。而负责解析协议,找到目的控制器,或者是返回对象给调用者的这个组件就是路由组件。 路由组件的职责主要是: 给注册者提供注册接口 注册者传递path和path对应的block,block的具体实现又注册者自己处理 给调用者提供使用接口 调用者最简单可以传递一个path给路由组件发起调用,路由组件会把具体的处理转发给注册者,理论上是可以任意的操作,包括页面跳转、弹窗提示、返回一个值给调用者等 下面会会在以上分析的基础上实现一个简单的路由组件,对应的代码可以在 YTRouterDemo 这里找到 路由的实现 路由的实现包括两部分

iOS 整理消息列表Demo<二>

筅森魡賤 提交于 2020-01-07 04:10:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 还是上一篇的消息列表,不过这次类型可能不止三个,要怎么做呢?参考一下别人的代码 ,跟读记录一下: 阅读代码,消息列表,多种类型,列表里有重复类型的消息,比如 聊天 可能是不同的人,别的公告什么的是一样的,只显示一行,其他有的类型可能是多行。 数据源: self.messageList 数组。 进入页面通过 tableview主动刷新 ,先链接 MQTT 注册 MQTT 然后去请求接口: 接口: xxx_list 返回了一个list的 message 的 model. 然后请求 session LIst 接口: CMD:@“xxxx_sessions" 不传参数。 然后遍历返回的 data数据数组: 去找是否有 会议类型的,如果有的话就加到 self.messageList 。 然后 :请求列表每项的未读数和最新一条消息 cmd:xxx_notices 传入 id 从 messageList 数组里遍历 model 拿到外面的 ID , 然后把返回来的 对应 list 的 model 一个个赋值给: temp.accountNotice = accountNoticeListDicModel.data[i]; 每赋值一个,给 model里的 计数属性字段加 1. 临时创建一个局部变量数组 把配置好的 临时