网络编程 websocket
websocket是一种持久化的协议,在建立起连接之后,和服务器就产生了一个通道,之后客户端和服务端的会话,都在这个通道中进行,而不会发起新的请求。协议头不再是http://开头的,而是以ws://进行开头,状态码是101。 websocket主要有3个事件,建立连接的open事件,发送消息的message事件以及关闭连接的close事件。在客户端new websocket(url)对象时便触发了建立连接事件,使用websocket.send(str)时,触发发送消息事件,退出时触发关闭事件。
网络编程 websocket聊天室demo
通过websocket实现聊天室主要是将消息进行广播,把消息发送给其他的用户会话中去,通过消息推送,推送到每一个session里面去。 通过一个静态共享变量如List获取所有的session通道,然后遍历这个List,把消息广播出去。
public void broadcast(List<Session> sessions,String msg) {
for(Session session : sessions) {
try {
//发送消息
session.get
日志 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.
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
HTTP/HTTPS区别以及SSL的基本原理
1. http和https的区别 从大致原理上说,https=ssl+http 端口不同:http使用80端口,https使用443端口 资源消耗不同:https信息需要加密解密消耗更多CPU和内存 开销:https需要CA证书,这个需要付费向认证机构购买 2. SSL的基本运行过程 SSL/TSL协议的基本思路是采用公钥加密法,也就是说,服务端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。 但是这里有两个问题: (1) 如何保证公钥不被篡改? 解决方法:将公钥
Python内置函数简介
版权声明:转载出处:胡梦佳的博客 https://blog.csdn.net/qq_42919222/article/details/88533127 Python内置函数汇总 一、Python错误及异常提示 二、类函数 三、基本函数 数学运算类 集合操作类 逻辑判断类 反射类 IO操作 一、Python错误及异常提示 函数类型 参数功能 ArithmeticError 算术错误 AssertionError 当一个assert语句失败时引发 AttributeError 属性异常,没有对应名
ConstraintLayout 开发报错:This view is not constrained. It only has designtime positions, so it will jum
ConstraintLayout 在布局中如出现如下报错信息: 此时,你要检查一下ConstraintLayout中的约束条件是否完整 所谓的完整就是水平和垂直的约束都要有
Windows怎么把视频变成GIF,动态图怎么制作
GIF是近年来比较火爆的,尤其是在聊天时使用较多,不仅可以活跃聊天的氛围,还可以增加感情,但是一般我们使用的都是这些社交工具中自带的,其实可以自己制作出属于自己的GIF,也可以将保存的短视频转为GIF哦!你今天就带大家看一下Windows怎么把视频变成GIF,动态图怎么制作吧! 1、先运行这样迅捷GIF制作工具,准备好要转为GIF的视频; 2、打开GIF制作工具,会出现两个选择按钮,前者是“启动屏幕录制”,后者是“启动GIF编辑器”,要将视频转为GIF选择后者即可; 3、然后会弹出一个编辑框,
shiro session序列化失败问题
版权声明:有什么深入的见解,欢迎评论补充,一起学习进步 https://blog.csdn.net/mengxiangxingdong/article/details/88537105 场景 今天一时兴起想要做个在线用户功能,同时支持内存,mysql,redis三库 都能够持久化的功能,没想到被序列化打败了 shiro SessionDao 的session 实现了ValidatingSession接口,当序列化时转变成字符串会导致多出来 “valid”:true 解决方法 存储session
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
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) {
连接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
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
{
一位优秀的C++程序员应该具备的技能
文章转自:https://www.cnblogs.com/geowu/p/9781765.html 一、技术能力 1.语言 我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习,而学习语言最关键的莫过于选好一本书,学校的教材就算了,根本没有写 得好的。在此隆重推荐《C++ Primer》,这本书很厚,内容也很丰富,对知识的讲解不仅仅停留在表面。如果这本书能有耐心看完,语言方面基本就没有什么大问题了,对以后的学习也打 下了一个很好的基础。 2.GUI C++方面的GUI库有很
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
TreeMap实现原理 红黑树
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑树左旋转、右旋转的复杂过程。 4、Java 中TreeMap是如何通过put、deleteEntry两个来实现红黑树增加、删除节点的。 我想通过这篇博文你对T
Java动态代理(dynamic proxy)
什么是代理 代理:代理对象主要用来拦截目标业务对象(被代理对象)的访问。 A:代理对象要持有真实业务对象。(通过构造函数接收业务对象,并用成员变量记录) B:代理对象要和真实业务对象,具备相同的行为方法(实现相同接口) C:代理对象拦截对真实对象的访问,可以修改访问的参数、返回值,甚至拦截访问 代理模式与装饰模式区别 A:代理模式侧重与拦截,装饰模式侧重与加强 B:Java中自带的代理中,只能对接口进行代理。装饰只需要与被装饰类有共同父类。 举个栗子 定义person接口:
public i
今日推荐
周排行