1.前言 IM App 是我做过 App 类型里复杂度最高的一类,里面可供深究探讨的技术难点非常之多.这篇文章和大家聊下从移动端客户端的角度所关注的IM消息可靠性和送达机制(因为我个人对移动客户端的经验积累的比较丰富嘛). 学习交流: - 即时通讯开发交流群:320837163[推荐] - 移动端IM开发入门文章:<新手入门一篇就够:从零开发移动端IM> (本文同步发布于:http://www.52im.net/thread-1470-1-1.html) 2.关于作者   作者网名:Peak,…
WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 WebSocket安卓客户端实现详解(二)–客户端发送请求 终于是最后一篇啦,有点激动\ ( ≧▽≦ ) /啦啦啦, 服务端主动通知 热身完毕,我们先回顾下第一篇中讲到的服务端主动通知的流程 根据notify中事件类型找到对应的处理类,处理对应逻辑. 然后用eventbus通知对应的ui界面更新. 如果…
移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得 1.        安卓浏览器看背景图片,有些设备会模糊. 因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机devicePixelRatio比较乱,有1.5的,有2的也有3的.想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍),或者指定 background一size:contain;都可以 2.        防止手机中网页放大和缩小 <meta name="…
服务器端.客户端的模型,客服端发送的请求,服务端的响应 相当于启动了一个web server install web.py 接口框架用到的包 http://webpy.org/tutorial3.zh-cn 官方网址 http://webpy.org/tutorial3.zh-cn 需要装一个web.py的包,接口就是用web.py来做的,文件上传之类的 可以看一下web.py的官方教程,学习一下服务器端程序时怎么写的 学学服务端编程的主题 pip install web.py Urls=()路…
(原) 第二篇,客户端与服务端互发消息 与第一篇的例子类似,这里服务端需要三个类,客户端也需要三个类. 服务端关键代码如下:MyServer与上一个例子中的TestServer 差多,这里只列举不同的地方. 通过MyServerHandler能看到,服务端收到消息后会向客户端发送一个UUID. 客户端代码如下: 这里能看到与服务端最明显的区别就是只有一个EventLoopGroup,用于连接类是bootstrap,不是serverBootStrap. 通过MyClientHandler可以看到,…
Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows   Client端 #include <stdio.h> #include <Windows.h> #pragma comment(lib, "ws2_32.lib") #define Port 5000 #define IP_ADDRESS "192.168.1.30"     //服务器地址…
1.通信过程 网络分为应用层,http.ssh.telnet就是属于这一类,建立在传输层的基础上.其实就是定义了各自的编码解码格式,分层如下: 2.Socket连接 上述通信都要先在传输层有建立连接的基础上才能完成,TCP通过三次握手建立连接:   Socket与http的区别可以看下这个: https://www.cnblogs.com/meier1205/p/5971313.html 还有搜索:http下午茶 3.JAVA socket 客户端与服务端互发消息 实现结构图:   客户端和服务…
假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的资源是否有更新. 在长时间不更新的情况下,反复地去询问会对服务器造成很大的压力,对网络也有很大的消耗,如果定时的时间比较大,服务端有更新的话,客户端可能需要等待定时器达到以后才能获知,这个信息也不能很及时地获取到. 而有了 WebSocket 协议,就能很好地解决这些问题,WebSocket 可以反…
查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端) 实现思路: 创建 QQ 小冰类 AiRobot服务端类和用户类 User,在服务端类main方法中使用ServerSocket(8888)创建服务端套接字,同时调用accept方法等待和得到客户端Socket 从Socket中获取和客户端通信的输出流,并…
因为我了解Akka-http的主要目的不是为了有关Web-Server的编程,而是想实现一套系统集成的api,所以也需要考虑由服务端主动向客户端发送指令的应用场景.比如一个零售店管理平台的服务端在完成了某些数据更新后需要通知各零售门市客户端下载最新数据.虽然Akka-http也提供对websocket协议的支持,但websocket的网络连接是双向恒久的,适合频繁的问答交互式服务端与客户端的交流,消息结构也比较零碎.而我们面临的可能是批次型的大量数据库数据交换,只需要简单的服务端单向消息就行了,…
消息无序产生的原因 消息队列,既然是队列就能保证消息在进入队列,以及出队列的时候保证消息的有序性,显然这是在消息的生产端(Producer),但是往往在生产环境中有多个消息的消费端(Consumer),尽管消费端在拉取消息时是有序的,但各个消息由于网络等方面原因无法保证在各个消费端中处理时有序. 场景分析 先后两次修改了商品信息,消息A和消息B先后同步写入MySQL,接着异步写入消息队列中发送消息,此时消息队列生产端(Producer)按时序先后发出了A和B两条消息(消息A先发出,消息B后发出)…
继续上篇文章解决RabbitMQ消息丢失问题和保证消息可靠性(一) 未完成部分,我们聊聊MQ Server端的高可用和消费端如何保证消息不丢的问题? 回归上篇的内容,我们知道消息从生产端到服务端,为了保证消息不丢,我们必须做哪些事情? 发送端采用Confirm模式,注意Server端没成功通知发送端,需要重发操作需要额外处理 消息的持久化处理 上面两个操作保证消息到服务端不丢,但是非高可用状态,如果节点挂掉,服务暂时不可用,需要重启后,消息恢复,消息不会丢失,因为有磁盘存储. 本文先从消费端讲起…
原文:第五节 RabbitMQ在C#端的应用-消息收发 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/87361905 1.VS2013创建生产者端 创建控制台程序:WIRabbitMQProducer,并将.net框架修改为4.6.2(版本4.6以上都可以). 添加NuGet程序包,RabbitMQ.Client,编写生产者程序,代码如下: class Program { static void Mai…
第一章. Asp.net中服务端控件事件是如何触发的 Asp.net 中在客户端触发服务端事件分为两种情况: 一. WebControls中的Button 和HtmlControls中的Type为submit的HtmlInputButton 这两种按钮最终到客户端的表现形式为: <input name="Submit1" id="Submit1" type="submit" value=”Submit”>,这是Form表单的提交按钮,…
首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. ResultInfo.java package com.fei.webservice.user.bean; import java.text.MessageFormat; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.…
今天做的实验,用c++做的服务端,端口号为6000:用java做的客户端,IP为127.0.0.1,port为6000,结果双方可以连接上线: 贴代码: 服务端: #include <winsock2.h>#include <iostream>using namespace std;SOCKET sockConn = NULL;char content[100] = " ";int flag = 1;DWORD WINAPI MYrevc(LPVOID lp){…
答案:表面上看去就是前端的js调用服务的C#方法,本质就是ajax,通过XMLHttpRequest对象和服务端进行交互.回调:就说回过头来调用,按理说js是一种脚本语言,怎么能用来调用服务端的呢?就是通过XMLHttpRequest实现的. 下面说一些具体的操作步骤 1.页面继承接口System.Web.UI.ICallbackEventHandler //继承接口使得:该页面可以作为服务器上的回调事件的目录 2.定义前端代码如下 <div> 请输入信息: <input type=&q…
客户端代码: var param = $.param( { feed:JSON.stringify({ content:'abcd' }) } ); $http({ url: 'http://61.153.100.80/pay/talent.php', method: "POST", data:param, headers: {'Content-Type': 'application/x-www-form-urlencoded'} }).success(function(data, s…
windows 服务端ip:172.18.18.70 Linux客服端ip: 172.18.54.11 1.windows服务端下载cwRsync Server , 地址:https://www.backupassist.com/rsync/ 2.安装wcRsync Server, 记得配置你自己的账户和密码. 我配置的用户名是sunnytest, 密码是·123qwer 3.启动rsyncServer, 配置自动启动 4.在D盘创建一个rsyncFile的文件夹 5.右击rsyncfile目录…
    客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: x-www-form-urlencoded form-data application/json X-CLIENT-ID: 客户端id X-TIMESTAMP: 客户端unix时间戳 X-SIGN: 客户端签名(可选) 另外需要实现Cookie机制 method 写请求使用POST 读请求使用GET…
通过判断浏览器的userAgent,用正则来判断手机是否是 IOS 和 Android 客户端. 代码如下: (function(){ var u = navigator.userAgent; var isAndroid =u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //Android终端 var isIOS =!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)…
1 Eureka知识点 按照功能划分: Eureka由Eureka服务端和Eureka客户端组成 按照角色划分: Eureka由Eureka Server.Service Provider.Service Consumer组成 Eureka Server:提供服务注册和发现(即:服务注册中心) Service Provider:服务提供方(即:为其他微服务提供数据资源的服务),将自身的服务信息注册到 Eureka Server 中去供 Service Consumer 使用 Service Co…
一.Android 低功耗蓝牙(BLE)的API简介 从Android 4.3(API 18)才支持低功耗蓝牙(Bluetooth Low Energy, BLE)的核心功能, BLE蓝牙协议是GATT协议, BLE相关类不多, 全都位于android.bluetooth包和android.bluetooth.le包的几个类: android.bluetooth. .BluetoothGattService 包含多个Characteristic(属性特征值), 含有唯一的UUID作为标识 .Bl…
设计思路 使用websocket通信,客户端采用C#开发界面,服务端使用Java开发,最终实现Java服务端向C#客户端发送消息和文件,C#客户端实现语音广播的功能. Java服务端设计 package servlet.websocket; import java.io.IOException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.websocket.OnClose;…
Server.java package com.sxt.tcp4; import java.io.IOException; import java.io.ObjectInputStream; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; import com.sxt.net.bean.User; /* 基于TCP协议的Socket编程 * 双向通信:传输对象…
常用语网页客户端对密码加密,在后端java解密还原 java代码依赖    <dependency>      <groupId>commons-codec</groupId>      <artifactId>commons-codec</artifactId>      <version>1.4</version>      <scope>compile</scope>    </depe…
Definition 瀑布流布局,在视觉上表现为参差不齐的多栏布局,随着页面滚动条向下滚动,新数据不断被加载进来. 瀑布流对于图片的展现,是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内获得更多的信息量,而瀑布流里懒加载模式又避免了用户鼠标点击的翻页操作. 瀑布流的主要特性便是错落有致,于乱中见序,定宽而不定高的设计让页面区别于传统的矩阵式图片布局模式,巧妙的利用视觉层级,视线的任意流动又缓解了视觉疲劳,同时给人以不拘一格的感觉,切中年轻一族的个性化心理. 最早采用此布局的网站是P…
一.下载instantclient_11_2,可去oracle官网进行下载. 二.解压缩下载的instantclient_11_2,将instantclient_11_2目录拖放到C:\Program Files\目录下(可自定义). 三.添加环境变量如下: 1)变量名:ORACLE_HOME 变量值:D:\Program Files\instantclient_11_2 2)变量名:TNS_ADMIN 变量值:D:\Program Files\instantclient_11_2 3)变量名:…
@RestController @RequestMapping(value = "test") public class TestServer { @RequestMapping(value = "/receive", method = {RequestMethod.POST}) @ApiOperation(value = "存管开户回调") @ResponseBody public void receive(HttpServletRequest…
本来从来没有仔细研究过Http协议,今天因为公司业务需求,调试了半天,终于现在会Winform用Http协议与服务端通信了,其中常用的有POST和Get方式: 仔细看了人人网和新浪等大部分都是采用GET方式获取数据的: private void pictureBox3_Click(object sender, EventArgs e) { string strUserName = textEdit1.Text.Trim(); //用户名 string strUserPwd = textEdit2…