服务器端脚本

服务器有新消息主动推送给客户端浏览器

ⅰ亾dé卋堺 提交于 2020-02-09 11:05:53
转自:http://www.cnblogs.com/study-everyday/p/6140498.html 通常情况下,打开网页或app去查询或者刷新时,客户端向服务器发出请求然后返回数据,客户端与服务端对应的模式是: 客户端请求--服务端响应, 而在有些情况下,服务端会主动推送一些信息到客户端,例如:新闻的订阅,天气的提醒等等,那么在这样的模式下,会有些问题值得思考: 1.应用服务器如何确定每一个应用所在的设备 2.服务端把消息推到哪,客户端又不像服务器有一个固定的地址 服务端主动推送到客户端是怎么一个过程? 结合一个实际问题分析下: 问题提出: 外卖app, 商家在商家后台需要实时的获取到有没有新订单,有的话是几个;这个需求类似与日常中使用QQ或者微信时的新信息提醒一样,只要有新信息就需要提醒 最近工作中遇到一个场景,商家在商家后台需要实时的获取到有没有新订单,有的话是几个;这个需求类似与日常中使用QQ或者微信时的新信息提醒一样,只要有新信息就需要提醒;商家基本在PC上使用,各式浏览器都有:如 IE系列(7.0,8.0,9.0及以上),chrome内核,firefox等;功能所属的部署在Tomcat 6.0上,如果技术需要可以部署到 Tomcat 7.0上; 我们先做做技术调研,这种浏览器与服务器实时通信的方式有哪些方式。 AJAX轮询 这是我们最自然想到的。

服务端主动推送数据到客户端

自古美人都是妖i 提交于 2020-02-09 11:03:58
通常情况下,打开网页或app去查询或者刷新时,客户端向服务器发出请求然后返回数据,客户端与服务端对应的模式是: 客户端请求--服务端响应, 而在有些情况下,服务端会主动推送一些信息到客户端,例如:新闻的订阅,天气的提醒等等,那么在这样的模式下,会有些问题值得思考: 1)应用服务器如何确定每一个应用所在的设备? 2)服务端把消息推到哪,客户端又不像服务器有一个固定的地址? 3)服务端主动推送到客户端是怎么一个过程? 假设一个场景,商家在商家后台需要实时的获取到有没有新订单,有的话是几个;这个需求类似与日常中使用QQ或者微信时的新信息提醒一样,只要有新信息就需要提醒;商家基本在PC上使用,各式浏览器都有:如 IE系列(7.0,8.0,9.0及以上),chrome内核,firefox等;功能所属的部署在Tomcat 6.0上,如果技术需要可以部署到 Tomcat 7.0上。 这种浏览器与服务器实时通信的方式有哪些方式。 1、AJAX轮询 这是我们最自然想到的。 采用 常规AJAX轮询 的方式,每10s或者30s轮询一次,既可以判断出有有多少个新订单进入,且这种时间间隔对于消息提醒也是可以接受的。这种技术方式实现起来非常简单,目前的机器都是可以机器的,前端浏览器也都支持。 但是这种方式会有非常严重的问题,就是需要不断的向服务器发送消息询问,如果有1w个商家打开了浏览器,采用10s轮询的方式

MySQL客户端和服务器端工具集

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-06 22:01:15
MySQL 一般是安装在服务器上的,我们在客户端可以进行连接,然后可以进行一些增删改查操作。下面我们分服务器端和客户端来讲解一下 MySQL 的实用工具集。 MySQL 服务器端实用工具 1) mysqld SQL 后台程序(即 MySQL 服务器进程)。该程序必须运行之后,客户端才能通过连接服务器来访问数据库。 2) mysqld_safe 服务器启动脚本。在 UNIX 和 NewWare 中推荐使用 mysqld_safe 来启动 mysqld 服务器。mysqld_safe 增加了一些安全性,例如,当出现错误时,重启服务器并向错误日志文件中写入运行时间信息。 3) mysql.server 服务器启动脚本。该脚本用于使用包含为特定级别的、运行启动服务器脚本的、运行目录的系统。它调用 mysqld_safe 来启动 MySQL 服务器。 4) mysqld_multi 服务器启动脚本,可以启动或停止系统上安装的多个服务器。 5) mysamchk 用来描述、检查、优化和维护 MyISAM 表的实用工具。 6) mysql.server 服务器启动脚本。在 UNIX 中的 MySQL 分发版包括 mysql.server 脚本。 7) mysqlbug MySQL 缺陷报告脚本。它可以用来向 MySQL 邮件系统发送缺陷报告。 8) mysql_install_db

Sencha Touch权威指南

限于喜欢 提交于 2020-01-05 04:13:26
《Sencha Touch权威指南》 基本信息 作者: 陆凌牛 [作译者介绍] 出版社:机械工业出版社 ISBN:9787111395010 上架时间:2012-8-22 出版日期:2012 年8月 开本:16开 页码:1 版次:1-1 所属分类: 计算机 > 软件与程序设计 > 网络编程 > javascript 计算机 > 软件与程序设计 > 网络编程 > HTML 更多关于》》》《 Sencha Touch权威指南 》 内容简介 书籍 计算机书籍   如何才能全面而透彻地理解和掌握移动应用开发框架sencha touch并开发出令人心动的移动应用?本书将给我们满意的答案!它的内容系统而全面,细致地讲解了sencha touch的所有功能、特性、使用方法、开发技巧,让我们能做到对sencha touch了如指掌;它实战性强,不仅每个知识点都配有精心设计的小案例(具体的实现步骤、完整的实现代码、最终的实现效果,图文并茂),而且还有综合性的案例,能让我们迅速获得实战经验。本书所有实例代码都经调试运行成功,我们可以对这些代码进行修改,以便观察各种不同效果,加深对实例代码的理解。   第一部分(第1~2章):首先介绍了sencha touch的功能和特性,然后介绍了如何搭建开发环境和发布应用程序,以及sencha touch的相关基础知识;第二部分(第3~15章):这是本书的核心部分

REST In WCF4.0

雨燕双飞 提交于 2020-01-02 01:34:30
REST软件架构是由Roy Thomas Fielding博士2000年在他的论文《Architectural Styles and the Design of Network- based Software Architectures》首次提出的。他提出的理论对后来的Web技术的发展产生了巨大的影响,他是许多重要Web架构标准的设计者,这些标准就是HTTP、URI等。 1.1) Rest的英文全称是“Representational State Transfer”。中文翻译为“表述性状态转移”。REST本身只是为分布式超媒体系统设计的一种架构风格,而不是标准。 1.2)那么如何理解“Representational State Transfer”这句话呢?下面我们来解释一下: Representational :中文直译:代表的,表像的。如果把WEB 服务器端中所有的东西(数据)都看作是资源(Resource),那么呈现在用户面前(客户端)的就是资源的表像(Representation)。每一个资源都有自己的唯一标识(URI)。 State :中文直译:状态。首先这个状态是客户端的状态,而不是服务器端的状态(在REST 中,服务器端应该是无状态的)。那么,把State和Representation联系在一起(Representational State),可以理解成:每一个资源

Comet 和 WebSocket

…衆ロ難τιáo~ 提交于 2019-12-27 20:25:58
众所周知,HTTP 协议,是无状态的,所以不能保持持续的链接。数据交换是通过客户端提交一个 Request 到服务器端,然后服务器端返回一个 Response 到客户端来实现的。 轮询(polling) 一般情况下,通过浏览器访问一个网页,需要浏览器发送一个 HTTP Request,服务器接收到浏览器的请求,返回相应的消息。在一些数据更新比较频繁的应用里,页面的数据要想得到最新的结果需要重新刷新页面,但这样会产生大量的冗余数据在服务器和客户端传输。 可以看到,不论是javascript定时轮询,还是采用html的 http-equiv="refresh" 定时刷新页面,只要采用polling的方式,效率都是十分低下的,一方面,服务器端不是总有数据更新,所以每次问询不一定都有更新,效率低下;另一方面,当发起请求的客户端数量增加,服务器端的接受的请求数量会大量上升,无形中就增加了服务器的压力。 Comet Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流。 Comet这个单词,很多地方都会说到,它是“彗星”的意思,顾名思义,彗星有个长长的尾巴,以此来说明客户端发起的请求是长连接的。即用户发起请求后就挂起,等待服务器返回数据,在此期间不会断开连接。流方式和长轮询方式的区别就是:对于流方式

rsync同步

醉酒当歌 提交于 2019-12-21 10:38:56
需达成目标 :在服务器(192.168.18.211)端搭建 rsync 服务,      将 /root/rsync-server/ 目录同步到客户端 /root/rsync-local 目录 Linux系统 :CentOS 6.5 一、由于CentOS6.5已经默认已经安装了 rsync,如若没有安装,可以参考如下方法: 1、检查是否安装了 rsync : rpm -qa rsync 2、如果没有安装可以使用yum安装 yum install -y rsync 3、启动 rsync : /etc/init.d/xinetd start 或 service xinetd start 二、服务端(192.168.18.211)[每个人的IP肯定都不一样] 1、建立 rsync 账号密码文件: vim /root/rsync_user , 添加一行 账号 : 密码 root:123456 2、修改权限 chmod 600 rsync_user 3、创建 rsync 全局配置文件 vim /etc/rsyncd.conf (默认没有此配置文件,手动添加该文件),内容如下: uid = nobody  // 传输文件时,执行的用户 gid = nobody // 传输文件时,执行的用户组 use chroot = yes  // 在传输文件之前,服务器守护程序在将chroot

Android网络编程概述

喜你入骨 提交于 2019-12-07 16:42:59
首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) Java .net.*(标准Java接口) java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数、链接到服务器、向服务器写数据、从服务器读取数据等通信。这些在Java网络编程中均有涉及。 b) Org.apache接口 对于大部分应用程序而言JDK本身提供的网络功能已远远不够,这时就需要Android提供的Apache HttpClient了。它是一个开源项目,功能更加完善,为客户端的Http编程提供高效、最新、功能丰富的工具包支持。 c)Android.net.*(Android网络接口) 常常使用此包下的类进行Android特有的网络编程,如:访问WiFi,访问Android联网信息,邮件等功能。 2)网络 架构 主要有两种模式B/S,C/S B/S----》就是浏览器/服务器端模式了,通过应用层的HTTP协议通信,不需要特定客户端软件,而是需要统一规范的客户端,简而言之就是Android网络浏览器(如chrome,UcWeb,QQ浏览器等等)访问web服务器端的方式了。 C/S-----》就客户端/服务器端模式,通过任意的网络协议通信

mount命令及参数详解

强颜欢笑 提交于 2019-12-07 07:08:38
Linux 挂载windows系统共享目录: mount -t cifs -o username=用户名,password=密码,iocharset=utf8,sec=ntlm //windowsIP地址/共享文件名 /本地挂载目录 Linux挂载虚拟机共享目录: mount -t nfs -o nolock 虚拟机IP:/虚拟机共享文件名 /本地挂载目录 ----------------------------- mount.cifs 中文手册 --------------------------- mount.cifs(8) System Administration mount.cifs(8) 名称 mount.cifs - 挂载通用网际文件系统(Common Internet File System) 语法 mount.cifs {service} {mount-point} [-o options] 描述 这个工具是 samba(7) 软件包的一部分。 mount.cifs 用于挂载 CIFS 文件系统。它通常由使用"-t cifs"选项的 mount(8) 命令间接调用。 这个命令只能在支持 CIFS 文件系统的Linux内核上使用。CIFS 协议是 SMB 协议的替代版本, 它被包括 Windows 在内的几乎所有操作系统所以及 NAS(Network

Socket.io学习

半世苍凉 提交于 2019-12-05 10:57:18
服务器端和客户端实现实时通讯的技术,服务端运行在nodejs平台,客户端运用javascript脚本 服务端: 创建socketio-demo文件夹,并进入此文件夹 第一步:安装node,npm(自行补脑) 第二步:了解vim基本操作 参考文章 http://blog.csdn.net/youngkingyj/article/details/22713965 插入模式:i 命令行模式:esc 保存并推出::wq 推出不保存::q! 第三步:创建package文件 vi package.json 第四步:安装express,检查express cnpm install --save express cat package.json 第五步: 来源: oschina 链接: https://my.oschina.net/u/2845173/blog/756876