xmpp 消息和好友上下线(3)】的更多相关文章

原始地址:XMPPFrameWork IOS 开发(四) 消息 //收到消息 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message{ // NSLog(@"message = %@", message); //消息的内容 NSString *msg = [[message elementForName:@"body"] stringValue]; //消息发送…
原始地址:XMPPFrameWork IOS 开发(四) 消息 //收到消息 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message{ // NSLog(@"message = %@", message); //消息的内容 NSString *msg = [[message elementForName:@"body"] stringValue]; //消息发送…
acl.config文件定义了可订阅$SYS主题的权限. {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}. {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}. %%%{deny, all, subscribe, ["$SYS/#", {eq, "#"}…
一.背景 上篇SSM项目使用GoEasy 实现web消息推送服务是GoEasy的一个用途,今天我们来看GoEasy的第二个用途:订阅客户端上下线实时状态变化.获取当前在线客户数量和在线客户列表.截止我发文时间,此功能处于试用阶段,如果要使用,需要找他们的客服开通此功能.由于已经在上篇中介绍了GoEasy,那么我们就直接开始了. 二.注册账号 官网地址:http://goeasy.io 三.创建应用 应用分免费版的和收费版(免费版最多只能创建2个应用),我这里用的是免费版.创建完应用之后如下图.…
不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序会解决我们的问题. (2)如果你女朋友需要天天给她微信发“晚安”,你一般怎么做呢?每天用手机敲出来,忘记了怎么办?设个闹钟,哥不扶墙,就服你. 作为程序员哥哥,你如果再怎么low,那就有点愧对你的身份了.一想,不就是一个定时任务吗?定时器就可以搞定.可,可.... 作为热门的java好像没有处理个人…
Eureka 系列(05)消息广播(上):消息广播原理分析 [TOC] 0. Spring Cloud 系列目录 - Eureka 篇 首先回顾一下客户端服务发现的流程,在上一篇 Eureka 系列(04)客户端源码分析 中对 Eureka Client 的源码进行了分析,DiscoverClient 负载服务发现,会将 Eureka Server 的服务全量同步到客户端.客户端同步的方式有两种:一是全量同步,二是增量同步,如果增量同步失败,则回滚到全量同步. Eureka Client 服务发…
简介 今天主要讨论一下,对于分布式服务,站点如何平滑的上下线问题. 分布式服务 在分布式服务下,我们会用nginx做负载均衡, 业务站点访问某服务站点的时候, 统一走nginx, 然后nginx根据一定的轮询策略,将请求路由到后端一台指定的服务器上.    这样的架构是没有问题的, 但是我们这里考虑几个问题,  1. 网站上下线问题:我们网站平时更新站点的时候是直接覆盖文件,然后重启, 那这样会造成一些请求中断,如果是非核心逻辑那还好, 如果是核心逻辑,那请求中断,会影响一些数据一致性,比如资金…
老老实实学WCF 第九篇 消息通信模式(上) 请求应答与单向 通过前两篇的学习,我们了解了服务模型的一些特性如会话和实例化,今天我们来进一步学习服务模型的另一个重要特性:消息通信模式. WCF的服务端与客户端在通信时有三种模式:单向模式.请求/应答模式和双工模式. 如果选用了单向模式,调用方在向被调用方进行了调用后不期待任何回应,被调用方在执行完调用后不给调用方任何反馈.如客户端通过单向模式调用了一个 服务端的操作后,就去干别的了,不会等待服务端给他任何响应,他也无从得知调用是否成功,甚至连发生…
1.Zookeeper 应用案例(上下线动态感知) 8.1 案例1--服务器上下线动态感知 8.1.1 需求描述 某分布式系统中,主节点可以有多台,可以动态上下线 任意一台客户端都能实时感知到主节点服务器的上下线 8.1.2 设计思路 8.1.3 代码开发 1.客户端实现 package cn.com.toto.zkonlineoroffline; import java.util.ArrayList; import java.util.List; import org.apache.zooke…
首先什么是观察者模式,可以看看我之前的设计模式的文章 https://www.cnblogs.com/cutter-point/p/5249780.html 确定一下,要有观察者,要有被观察者,然后要被观察者触发事件,事件发生之后,观察者触发相应的事件发生 了解了基本概念,我们来看看zookeeper是什么情况 zookeeper也是类似观察者一样,我们先把本机信息注册进入服务器,然后设置一个watch方法,这个在zookeeper节点发生变化的时候通知对应的客户端,触发对应的方法 这里先注册服…
需求 某分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知到主节点服务器的上下线. 需求分析 具体实现 先在集群上创建/servers节点 create /servers "servers" 一些依赖 pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q…
网上关于nginx的介绍有很多,这里讲述的是上游服务(如下图的Java1服务)在没有"网关"的情况下,如何通过nginx做到动态上下线. 传统的做法是,手动修改nginx的upstream文件,将Java1的配置注释或者标记为down,然后reload nginx生效.当然可以做成脚本自动化修改,然而对于一个繁忙的nginx来说,贸然reload轻则响应缓慢,重则雪崩丢失流量. 那么怎样做到nginx动态加载upstream配置呢?网上大体有3种方案: 通过Lua脚本结合nginx,也…
SpringCloud 服务优雅上下线 Spring Boot 框架使用"约定大于配置"的特性,优雅流畅的开发过程,应用部署启动方式也很优雅.但是我们通常使用的停止应用的方式是 kill -9 <pid> ,即使我们编写脚本,还是显得有些粗鲁.这样的应用停止方式,在停止的那一霎那,应用中正在处理的业务逻辑会被中断,导致产生业务异常情形.这种情况如何避免,本文介绍的优雅停机,将完美解决该问题. 什么叫优雅停机? 简单说就是在对应用进程发送停止指令之后,能保证正在执行的业务操作…
1. ZK的监控机制 1.1 监听数据的变化  (1)监听一次 public class ChangeDataWacher { public static void main(String[] args) throws Exception { // 连接并获取zk客户端的对象 ZooKeeper zk = new ZooKeeper("feng01:2181,feng02:2181,feng03:2181", 2000, null); zk.getData("/user&qu…
在XMPP通讯开发-服务器连接 中我们成功连接到服务器上面,然后进入到主界面,接下来就是获取好友列表,这里我们分段开发,首先就是界面的设计,这里仿照QQ好友界面,里面的数据先是用模拟的,下一章获取服务器上面的信息然后在替换,先看一下界面效果 其实界面设计很简单,主要用到JTabbedPane,然后使用JTree将数据添加进来,最后在把JTree添加到JTabbedPane中,代码如下: /** * 添加好友列表的功能:模拟数据 */ private void initFriends(){ //…
六:定时发送消息 哨兵每隔一段时间,会向其所监控的所有实例发送一些命令,用于获取这些实例的状态.这些命令包括:"PING"."INFO"和"PUBLISH". "PING"命令,主要用于哨兵探测实例是否活着.如果对方超过一段时间,还没有回复"PING"命令,则认为其是主观下线了. "INFO"命令,主要用于哨兵获取实例当前的状态和信息,比如该实例当前是主节点还是从节点:该实例反馈的IP地…
什么是RabbitMQ? RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也称为面向消息的中间件).支持WIndows.Linux.MAC OS 操作系统和包括java..net在内的多种编程语言. AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,分面向消息的中间件设计.基于此协议的客户端与消息中间件可传递消息,并不受 客户端/中间件 不同…
在发送小消息的场景中,三个消息中间件的表现区分明显: Kafka的吞吐量高达17.3w/s,远超其他两个产品.这主要取决于它的队列模式保证了写磁盘的过程是线性IO.此时broker磁盘IO已达瓶颈. RocketMQ也表现不俗,吞吐量在11.6w/s,磁盘IO %util已接近100%.RocketMQ的消息写入内存后即返回ack,由单独的线程专门做刷盘的操作,所有的消息均是顺序写文件. RabbitMQ的吞吐量5.95w/s,CPU资源消耗较高.它支持AMQP协议,实现非常重量级,为了保证消息…
原始地址:XMPPFrameWork IOS 开发(七)消息回执 请参考:XEP-0184协议 协议内容: 发送消息时附加回执请求 <message from='northumberland@shakespeare.lit/westminster' id='richard2-4.1.247' to='kingrichard@royalty.england.lit/throne'> <body>My lord, dispatch; read o'er these articles.&…
Observer设计模式:监视者模式.在类中的方法中处理的结果或者消息通过事件委托 的方式发送给主窗体. 因为在其它类中直接访问主窗体类,显示内容是不能直接调用控件赋值的,当然也有别的类似查阅控件名,直接赋值的方式, 这种方式似乎不是被提倡的.而观察者模式是常用的方式. 初学者在刚开始写程序时,往往把很多的方法函数都写在了主窗体类下,很方便的调用主窗体里边的控件,给予赋值, 但代码多了肯定会乱.所以要进阶必须熟悉当前讲的方式. 下边是个简洁的带参数的事件委托的写的代码 using System;…
WM_CLOSE:关闭应用程序窗口 WM_DESTROY:关闭应用程序 WM_QUIT:关闭消息循环 只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失). win32应用程序的完整退出过程:点击窗口右上角的关闭按钮,发送WM_CLOSE消息.此消息处理中调用DestroyWindow函数,发送WM_DESTROY消息.此消息处理中调用PostQuitMessage(0)函数,发送WM_QUIT消息到消息队列中.GetMessage捕获到WM_QUIT,返回0,退出循环(应用程序真…
<com.jclick.swipelistview.byzswipemenulistview.InScrollviewSwipeMenuListView android:id="@+id/lv_track" android:layout_below="@id/btn_save" android:layout_width="match_parent" android:paddingBottom="@dimen/dimen_42.5d…
  在实际的生产环境中我们一般都是集群环境部署的,同一个程序我们会部署在相同的几台服务器中,这时我们可以通过负载均衡服务器去调度,但是我们并不能很快速的获知哪台服务器挂掉了,这时我们就可以使用zookeeper来解决这个问题. zookeeper的动态感知   动态感知其实利用的就是zookeeper的watch功能,我们先来看下常规的负载均衡服务器的结构 再来看下我们用zookeeper实现的结构 文字描述: 1.感知上线   当服务器启动的时候通过程序知道后会同时在zookeeper的ser…
spring cloud consul中默认会将spring.application.name作为ID 同一服务起多个实例时,ID默认会变成${spring.application.name}-${server.port} 也可以在配置中通过spring.cloud.consul.discovery.instance-id=rms指定ID名称,如果instance-id名称相同,后起的会将先起的同名实例挤下线. docker起的服务实例address显示的是container id,不知道怎么使…
一.在具体实现之前,先来了解一下Zookeeper的监听器的原理: 图中Main()线程作为客户端,当在主线程中创建Zookeeper客户端时,会默认创建两个子线程:Listener和connect,connect线程负责将某一操作对应的的监听事件发送给Zookeeper服务集群.Zookeeper收到监听事件后会在该操作对应的监听器列表中注册该事件. 比如图中的获取节点“/”的子节点getChildren这一事件,并设置了true,表示监听此事件.那么Zookeeper就会在监听器列表中注册该…
背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢到课了,刷到车票了,爬虫cookie过期了等,需要及时提醒我们. 现有的方案,大概就是下面2种: 方式 优点 缺点 短信 实时性强 要钱 邮件 免费 实时性不强,不查收邮件可能看不到. 我们觉得2种方案都不是很完美,因此去申请了"开发者服务"这个公众号. 消息推送服务 我给他取了一个形象的…
http://blog.itpub.net/31545684/viewspace-2215300/ spring cloud eureka 参数配置 https://www.jianshu.com/p/e2bebfb0d075…
package pfs.y2017.m11.zookeeper.demo03; import java.util.ArrayList; import java.util.List; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeep…
由于时间原因,所以更新比较慢 ,还请大家谅解,此次是对上篇文章中的安卓客户端初级版本进行的一次更新优化,在这次更新后,就有那么一点样子了,可以拿的出手了,呵呵,还在关注的同学也可以及时下载更新.此次主要更新的内容如下: 1,聊天界面,新消息到来时,聊天界面同步刷新: 2,聊天界面,支持长按聊天记录时删除或复制聊天记录,及清空与该用户的全部聊天记录: 3,消息界面,支持长按某一会话,删除与该用户的会话记录: 4,支持消息未读数量显示(底部导航栏为总未读数,会话记录处为与该用户的聊天的未读消息数):…
XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发. 1. 登录和好友上下线 1.1XMPP中常用对象们 XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类 XMPPvCardCoreDataStorage:好友名片(昵…