科技新闻

HTTP长连接与短链接

情到浓时终转凉″ 提交于 2020-02-26 21:31:59
想要充分了解HTTP长连接,需要首先知道一些基本概念: TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。 经典的三次握手示意图: 经典的四次握手关闭图: TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server 发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是client先发起 close操作。为什么呢,一般的server不会回复完client后立即关闭连接的,当然不排除有特殊的情况。从上面的描述看,短连接一般只会在client/server间传递一次读写操作。短连接的优点是:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段。 TCP长连接 接下来我们再模拟一下长连接的情况,client向server发起连接,server接受client连接,双方建立连接。Client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。 首先说一下TCP

SpringBoot+Redis缓存

那年仲夏 提交于 2020-02-26 21:02:18
开发中通常会使用缓存中间件:redis、memcached、ehcache. redis可以用作数据库、缓存和消息中间件, 本文中使用redis作为缓存 一、安装redis 1、docker中安装redis: sudo docker pull redis 2、启动redis并映射端口 sudo docker run -d -p 6379:6379 --name myredis 镜像名 映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务 3、windows中安装 4、连接虚拟机 右击redis打开控制台console可以输入命令 二、配置redis 1、pom.xml中引入依赖 < dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-data-redis < /artifactId > < /dependency > 2、application.properties中配置 #连接虚拟机中的redis spring.redis.host = 192.168.0.103 spring.redis.port = 6379 3、在测试中注入redis操作的模板:

麻省理工学院工程师团队研发出“智能墙纸” 可将Wi-Fi信号提高近10倍

余生长醉 提交于 2020-02-26 19:33:34
  腾讯科技讯,据外媒报道,美国科学家发明了一种“智能墙纸”,它可以显著增强家里的 Wi-Fi 信号。   麻省理工学院(MIT)的研究人员表示,他们的智能墙纸可以将 Wi-Fi 信号强度提高近 10 倍,让容量翻一番。   这些像纸一样薄的智能墙纸嵌入了数千个微小的天线,这些天线能够充当聚焦镜,将信号聚焦到特定的设备如手机或笔记本电脑上。   根据麻省理工学院博士生文卡特-阿伦(Venkat Arun)和教授哈里-巴尔克里希南(Hari Balkrishnan)的研究论文,这种智能墙纸解决了室内环境中 Wi-Fi 信号可能被墙壁阻挡的问题。   “它可以制作成一张薄薄的柔性薄片,可以作为(彩绘的)墙纸粘贴在墙上。”该研究论文说。而且,它不需要布线。   RFocus 技术原型使用了 3720 个安装在 6 米表面的天线,研究称这可能是“有史以来用来改善通信连接状况的最大数量的天线”。   麻省理工学院的研究人员补充说,若进行规模化生产,每个天线的制造和安装成本只有几便士。   该智能墙纸相当于在整个家庭或办公室安装了信号放大器,可以增强无线信号的强度。   这项研究是在去年的一项调查之后进行的,该调查发现三分之一的家庭都有房间无 Wi-Fi 信号。   互联网服务提供商协会(ISPA)呼吁建筑公司采取更多措施来改善 Wi-Fi 覆盖,称许多新住宅仍像“是为上个世纪建造的”。  

SpringBoot整合阿里RocketMQ

99封情书 提交于 2020-02-26 18:02:15
什么是RocketMQ 阿里消息队列 RocketMQ版既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,同时是收费的产品。 应用场景 削峰填谷 诸如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,消息队列 RocketMQ 版可提供削峰填谷的服务来解决该问题。 异步解耦 交易系统作为淘宝/天猫主站最核心的系统,每笔交易订单数据的产生会引起几百个下游业务系统的关注,包括物流、购物车、积分、流计算分析等等,整体业务系统庞大而且复杂,消息队列 RocketMQ 版可实现异步通信和应用解耦,确保主站业务的连续性。 顺序收发 细数日常中需要保证顺序的应用场景非常多,例如证券交易过程时间优先原则,交易系统中的订单创建、支付、退款等流程,航班中的旅客登机消息处理等等。与先进先出(First In First Out,缩写 FIFO)原理类似,消息队列 RocketMQ 版提供的顺序消息即保证消息 FIFO。 分布式事务一致性 交易系统、支付红包等场景需要确保数据的最终一致性,大量引入消息队列 RocketMQ 版的分布式事务,既可以实现系统之间的解耦,又可以保证最终的数据一致性。 大数据分析 数据在“流动”中产生价值

h5移动端聊天室|仿微信界面聊天室|h5多人聊天室

℡╲_俬逩灬. 提交于 2020-02-26 17:57:22
今年的FIFA世界杯甚是精彩,最近兴致高涨就利用HTML5开发了一个手机端仿微信界面聊天室,该h5聊天室采用750px全新伸缩flex布局,以及使用rem响应式配合fontsize.js,页面弹窗则是使用自己开发的 wcPop.js插件 ;编辑器部分由原先的单一表情新增为动图表情,实现了消息、表情发送 | 大图、视频效果预览 | 仿微信红包、打赏等微交互功能。 案例截图: // ...滚动聊天区底部 function wchat_ToBottom(){ //$(".wc__chatMsg-panel").animate({scrollTop: $("#J__chatMsgList").height()}, 0); $(".wc__slimscroll2").slimscroll({ scrollBy: $("#J__chatMsgList").height(), height: 'auto' }); } // ...表情、选择区切换 $(".wc__editor-panel").on("click", ".btn", function(){ var that = $(this); $(".wc__choose-panel").show(); if (that.hasClass("btn-emotion")) { $(".wc__choose-panel .wrap-emotion"

禁用HTML5表单元素的验证

落花浮王杯 提交于 2020-02-26 17:20:28
在我的表单中,我想使用新的HTML5表单类型,例如 <input type="url" /> ( 有关此处的类型的更多信息 )。 问题在于Chrome希望对我有帮助,并为我验证这些元素,除了它会吸引人。 如果未通过内置验证,则该元素不会成为焦点,否则不会显示任何消息或指示。 我用 "http://" 预填充URL元素,因此我自己的自定义验证只是将这些值视为空字符串,但是Chrome拒绝了。 如果我可以更改其验证规则,那也可以。 我知道我可以恢复使用 type="text" 但我希望使用这些新类型提供的增强功能(例如:它会自动切换到移动设备上的自定义键盘布局): 因此, 有没有办法关闭或自定义自动验证? #1楼 我在下面的选择器中找到了一个使用CSS的Chrome解决方案,而没有绕过可能非常有用的本机验证表单。 form input::-webkit-validation-bubble-message, form select::-webkit-validation-bubble-message, form textarea::-webkit-validation-bubble-message { display:none; } 通过这种方式,您还可以自定义消息... 我在此页面上找到解决方案: http : //trac.webkit.org/wiki/Styling%20Form

微信小程序开发- 4

眉间皱痕 提交于 2020-02-26 16:36:07
微信小程序开发-开发流程和开发基础 - 1 微信小程序开发-2- 生命周期、事件、原生组件 微信小程序开发- 3 - 原生组件(一) 微信小程序开发- 4 - 原生API 微信小程序开发- 5 - 开放功能 工具 whistle 在上传和下载文件时,请求在network里面是看不到的,可以用whistle抓取到上传下载请求; 微信小程序原生API模块分类 网络 发起网络请求 媒体 音频视频 文件 上传下载文件 数据缓存 位置 操作当前位置信息 设备 当前系统设备信息和状态 界面 当前小程序页面的标题、颜色等 开放接口 微信支付、登录授权、客服消息、模板消息 规则 wx.on开头 Object参数 有三种回调函数success,fail,complete(无论失败与否) wx.get/wx.set wx.get获取宿主环境的参数 wx.set写入宿主环境的参数 调用函数的时候有两种方式: 直调函数 程序运行时直接执行被调函数 回调函数 程序运行之后,回过头来执行被调函数 状态码 10001 系统错误 10002 网络错误 10003 文件错误 10004 格式错误 -1 未知错误 网络请求 wx.request(Object) 参数 url: 需要绑定请求的域名 在小程序管理后台的配置服务器信息里添加域名 https的域名,并且域名必须是合法,并且是经过ICP备案 只能填入域名

RocketMQ Producer发送消息流程

我只是一个虾纸丫 提交于 2020-02-26 16:26:31
 这节介绍Producer发送消息的流程。  接上一节开头的Demo,发送消息的写法如下: public class SyncProducer { public static void main (String[] args) throws Exception { // 实例化消息生产者Producer DefaultMQProducer producer = new DefaultMQProducer ("GroupTest"); // 设置NameServer的地址 producer.setNamesrvAddr ("localhost:9876"); // 启动Producer实例 producer.start (); for (int i = 0; i < 100; i++) { // 创建消息,并指定Topic,Tag和消息体 Message msg = new Message ("TopicTest" /* Topic */, "TagA" /* Tag */, ("Hello RocketMQ " + i).getBytes (RemotingHelper.DEFAULT_CHARSET) /* Message body */ ); // 发送消息到一个Broker SendResult sendResult = producer.send (msg); //

钉钉生态企业“明我科技”完成数千万元A+轮融资

心已入冬 提交于 2020-02-26 15:56:11
  投资界(微信 ID:pedaily2012)1 月 11 日消息, 智能办公硬件及方案提供商上海明我信息技术有限公司(以下简称“明我科技”)近日宣布完成数千万元的A 轮融资,本轮融资由毅达资本领投,联通创投跟投 。   据悉,本轮融资资金将主要用于扩大公司规模、投入产品和运营服务。   公开资料显示,明我科技是一家智能办公解决方案提供商,旗下产品包括智能办公盒子,结合钉钉进行使用,具有无线投屏、影音同步、双频双天线功能。此外,还提供智能办公软硬件一体化智慧解决方案。自 2013 年成立以来,便专注于智能硬件产品的研发。   2016 年,明我科技获得阿里巴巴的天使轮融资,作为阿里巴巴在企业数字化办公实践领域中的重要布局,与钉钉共同推动智能办公硬件系列产品的研发和推广;2018 年 9 月,获得招银展翼基金投资,业务也从基于智能办公的各类场景逐渐向软硬件结合的整体解决方案扩展,并与罗技、新华三等大型硬件企业达成合作,进一步布局智能会议和智能办公网络场景。   关于本次投资,毅达资本项目负责人张治表示,“ 硬件的制造和生产并不是难点,但如何让硬件更加符合智能办公场景,并更好的和企业的管理相融合才是关键 。由于深耕钉钉生态,明我科技具备链接和打通软硬件办公场景壁垒的能力。在智慧办公领域,钉钉作为一款入口级产品,为整个场景形成闭环奠定了基础。明我科技长期专注于智能硬件的开发

数据库优化相关思考

痞子三分冷 提交于 2020-02-26 15:49:54
1、客户端定时查询的业务场景,可考虑放到服务器一次性查询出结果后通知给到各个客户度即可。比如每个客户端都有超时显示的语句,消息查看的语句等。 2、在实际开发中,假如碰到跟操作系统和IE版本不兼容的情况下,可以多考虑进行套壳兼容的模式。自己封装实现后提供使用。 3、很多系统涉及到的SQL语句写在代码里面,导致每次增加字段或修改语句,需要同时修改对应的业务服务程序,影响较大,开发和维护成本也大。 4、具体SQL语句复杂的情况下,可能是表设计的不合理导致的,可以根据业务场景进一步优化表结构的一些设置逻辑。从而优化对应的语句。 5、建议使用分页查询逻辑,以及对应的控件来实现。用户无感知的切换到下一页进行显示和处理。 6、其他内容: (1)多个业务功能点,混合在一起,使用同个SQL语句进行书写,导致查询字段多,关联表多。 (2)相同业务功能点,不同医院在查询语句上也会略有区别,导致不断增加字段,维护起来也诸多不便。 建议进行2类改造: (1)针对原因(1),每个SQL语句确认是否有多个业务功能点使用,存在这种情况,需进行拆分,对每个业务功能点,重新梳理查询条件,展现字段,写多个SQL语句。 (2)针对原因(2),对查询类需求需进行以下改造: (a)需寻找C++下类似JAVA中MYBATIS的数据层框架,将语句放到配置文件中进行书写。这样代码不用改变,针对每家医院