网络编程 websocket

websocket是一种持久化的协议,在建立起连接之后,和服务器就产生了一个通道,之后客户端和服务端的会话,都在这个通道中进行,而不会发起新的请求。协议头不再是http://开头的,而是以ws://进行开头,状态码是101。 websocket主要有3个事件,建立连接的open事件,发送消息的message事件以及关闭连接的close事件。在客户端new websocket(url)对象时便触发了建立连接事件,使用websocket.send(str)时,触发发送消息事件,退出时触发关闭事件。
分类: 其他 发布时间: 03-13 22:33 阅读次数: 0

网络编程 websocket聊天室demo

通过websocket实现聊天室主要是将消息进行广播,把消息发送给其他的用户会话中去,通过消息推送,推送到每一个session里面去。 通过一个静态共享变量如List获取所有的session通道,然后遍历这个List,把消息广播出去。 public void broadcast(List<Session> sessions,String msg) { for(Session session : sessions) { try { //发送消息 session.get
分类: 其他 发布时间: 03-13 22:33 阅读次数: 0

日志 log4j按日期生成文件夹

期望结果:按日期生成文件夹,在最底层文件夹中记录日志,如:2019/03/11,在11这个文件夹下记录11号的日志,03和2019均为11的父文件夹。 API:log4j 主要步骤:继承log4j的org.apache.log4j.RollingFileAppender类,重写setFile、subAppend方法 配置文件:修改log4j的配置文件,将使用的类指向自己写的继承的类,改写日志文件目录格式 java代码: import java.io.File; import java.io.
分类: 其他 发布时间: 03-13 22:33 阅读次数: 0

ActiveMQ 下载与安装

下载:直接去官网即可下载 注意:ActiveMQ5.10.x以上版本必须使用JDK1.8才能正常使用;ActiveMQ5.9.x及以下版本使用JDK1.7即可正常使用。 安装:解压安装gz文件 检查: 1、权限问题,ls -al apache-activemq-5.9.0/bin,如果权限不足,则无法执行,需要修改文件权限:chmod 755 activemq 2、主机名,如果主机名中带有下划线("_"),会启动失败,请修改自己的主机名 启动:在activeMQ的bin目录下,activemq
分类: 其他 发布时间: 03-13 22:32 阅读次数: 0

HTTP/HTTPS区别以及SSL的基本原理

1. http和https的区别 从大致原理上说,https=ssl+http 端口不同:http使用80端口,https使用443端口 资源消耗不同:https信息需要加密解密消耗更多CPU和内存 开销:https需要CA证书,这个需要付费向认证机构购买 2. SSL的基本运行过程 SSL/TSL协议的基本思路是采用公钥加密法,也就是说,服务端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。 但是这里有两个问题: (1) 如何保证公钥不被篡改? 解决方法:将公钥
分类: 编程语言 发布时间: 03-13 22:32 阅读次数: 0

Python内置函数简介

版权声明:转载出处:胡梦佳的博客 https://blog.csdn.net/qq_42919222/article/details/88533127 Python内置函数汇总 一、Python错误及异常提示 二、类函数 三、基本函数 数学运算类 集合操作类 逻辑判断类 反射类 IO操作 一、Python错误及异常提示 函数类型 参数功能 ArithmeticError 算术错误 AssertionError 当一个assert语句失败时引发 AttributeError 属性异常,没有对应名
分类: 编程语言 发布时间: 03-13 22:32 阅读次数: 0

ConstraintLayout 开发报错:This view is not constrained. It only has designtime positions, so it will jum

ConstraintLayout 在布局中如出现如下报错信息: 此时,你要检查一下ConstraintLayout中的约束条件是否完整 所谓的完整就是水平和垂直的约束都要有
分类: 编程语言 发布时间: 03-13 22:31 阅读次数: 0

Windows怎么把视频变成GIF,动态图怎么制作

GIF是近年来比较火爆的,尤其是在聊天时使用较多,不仅可以活跃聊天的氛围,还可以增加感情,但是一般我们使用的都是这些社交工具中自带的,其实可以自己制作出属于自己的GIF,也可以将保存的短视频转为GIF哦!你今天就带大家看一下Windows怎么把视频变成GIF,动态图怎么制作吧! 1、先运行这样迅捷GIF制作工具,准备好要转为GIF的视频; 2、打开GIF制作工具,会出现两个选择按钮,前者是“启动屏幕录制”,后者是“启动GIF编辑器”,要将视频转为GIF选择后者即可; 3、然后会弹出一个编辑框,
分类: 编程语言 发布时间: 03-13 22:31 阅读次数: 0

js 中间件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/susuzhe123/article/details/88537100 //function Middleware(){ // this.cache = []; //} //Middleware.prototype.use = function(fn){ //if(typeof fn !== 'function'){ // throw 'middleware must be a function
分类: 编程语言 发布时间: 03-13 22:31 阅读次数: 0

shiro session序列化失败问题

版权声明:有什么深入的见解,欢迎评论补充,一起学习进步 https://blog.csdn.net/mengxiangxingdong/article/details/88537105 场景 今天一时兴起想要做个在线用户功能,同时支持内存,mysql,redis三库 都能够持久化的功能,没想到被序列化打败了 shiro SessionDao 的session 实现了ValidatingSession接口,当序列化时转变成字符串会导致多出来 “valid”:true 解决方法 存储session
分类: 编程语言 发布时间: 03-13 22:30 阅读次数: 0

ruby rails on Nginx环境

安装rubyrailsonNginx环境安装ruby环境安装RVM$gpg--keyserverhkp://keys.gnupg.net--recv-keys409B6B1796C275462A1703113804BB82D39DC0E3$curl-sSLhttps://get.rvm.io|bash-sstable#如果上面的连接失败,可以尝试:$curl-Lhttps://raw.github
分类: 服务端 发布时间: 03-13 22:30 阅读次数: 0

List删除元素的三种方法

本文提供了三种方式: 初始化list,要求:删除list中的奇数 List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); 方式1:声明一个新的list存放符合要求的数据 List<Integer> newList = new ArrayList<>(); for(Integer per : list) {
分类: 编程语言 发布时间: 03-13 22:30 阅读次数: 0

连接mysql报错——没有设置“usessl=false”

版权声明:原创不易,转载请注明出处~ https://blog.csdn.net/qq_34266804/article/details/88536968 报错信息: Wed Mar 13 17:08:37 CST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7
分类: 编程语言 发布时间: 03-13 22:30 阅读次数: 0

yii 1.1 CActiveDataProvider + CGridView 实现自动表格展示

实例中使用到的表结构如下: Model:Users.php <?php /** * The followings are the available columns in table 'tbl_user': * @property integer $id * @property string $name * @property integer $sex * @property string $home */ class Users extends CActiveRecord {
分类: 编程语言 发布时间: 03-13 22:30 阅读次数: 0

一位优秀的C++程序员应该具备的技能

文章转自:https://www.cnblogs.com/geowu/p/9781765.html 一、技术能力 1.语言 我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习,而学习语言最关键的莫过于选好一本书,学校的教材就算了,根本没有写 得好的。在此隆重推荐《C++ Primer》,这本书很厚,内容也很丰富,对知识的讲解不仅仅停留在表面。如果这本书能有耐心看完,语言方面基本就没有什么大问题了,对以后的学习也打 下了一个很好的基础。 2.GUI C++方面的GUI库有很
分类: 编程语言 发布时间: 03-13 22:29 阅读次数: 0

Win10中安装ubuntu及相关程序命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gedidiao/article/details/88537015 本博是收集各种win10中ubuntu安装时存在的问题 首先,在win10里创建建ubuntu环境: https://blog.csdn.net/wu9797/article/details/79489328 其次,安装gcc 编译环境: https://blog.csdn.net/wu9797/article/details/7
分类: 编程语言 发布时间: 03-13 22:29 阅读次数: 0

TreeMap实现原理 红黑树

TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑树左旋转、右旋转的复杂过程。 4、Java 中TreeMap是如何通过put、deleteEntry两个来实现红黑树增加、删除节点的。 我想通过这篇博文你对T
分类: 编程语言 发布时间: 03-13 22:29 阅读次数: 0

计算机杂记

逻辑:人工智能分支 自然语言处理NLP 自动机 编译原理 离散数学 调优: 软件角度:操作系统 硬件结构:门电路,数字电路(微观),计算机组成原理(宏观),微机原理,计算机系统结构 《操作系统》是站在软件的角度看计算机的运行原理,《计算机组成原理》则是站在硬件的角度来看计算机的运行原理,因此这么课对于学习计算机的学生来说非常重要。我这里不谈怎么通过考试,相信对于现在的的大学考试来说,只要认真备考的都不会通不过,所以这里不谈怎么通过考试,而是谈怎么学到有用的东西。 对于以后想从事嵌入式系统、操作
分类: 编程语言 发布时间: 03-13 22:28 阅读次数: 0

力扣刷题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingtaoqian8521/article/details/88535051 刷题学习: 160链表相交节点查找 python实现 def getIntersectionNode(self, headA, headB): """ :type head1, head1: ListNode :rtype: ListNode """ a,b = 0,0 p,q = headA,headB while
分类: 编程语言 发布时间: 03-13 22:28 阅读次数: 0

Java动态代理(dynamic proxy)

什么是代理 代理:代理对象主要用来拦截目标业务对象(被代理对象)的访问。 A:代理对象要持有真实业务对象。(通过构造函数接收业务对象,并用成员变量记录) B:代理对象要和真实业务对象,具备相同的行为方法(实现相同接口) C:代理对象拦截对真实对象的访问,可以修改访问的参数、返回值,甚至拦截访问 代理模式与装饰模式区别 A:代理模式侧重与拦截,装饰模式侧重与加强 B:Java中自带的代理中,只能对接口进行代理。装饰只需要与被装饰类有共同父类。 举个栗子 定义person接口: public i
分类: 编程语言 发布时间: 03-13 22:28 阅读次数: 0