关于icomet的安装及使用方式可以阅读前面几篇博文,有了前面的基础再来实现一对一或者群聊就比较容易了,关键是如何设计。在实现的基础上还要保证信息实时送达,保证信息安全。  首先说一下一对一聊天,每一个用户有自己的独立通道(频道)和token(icomet生成),并且用户只接收自己通道(频道)的...
  在《icomet消息推送原理与常用指令》这篇文章中介绍了icomet的消息推送实现方式但是未涉及到安全认证,本文会介绍token认证的实现方式。首先需要在配置文件icomet.conf中开启token认证(将auth项由none修改为token),修改为如下配置:......front: ...
  在《即时通讯消息服务器icomet在Linux下的安装》这篇文章中已经介绍了icomet的安装方式,本文介绍一下即时通信实现的原理和常用的指令。首先看一下icomet的工作时序图。下面说一下常用的一些指令:在订阅方面支持SSE(Server Sent Event)代码格式如下:<scrip...
  iComet 是C++ 编写的高性能即时通讯服务器,支持百万并发,可用于多人聊天、一对一实时聊天,支持token权限认证,安全性很高。 支持移动或web应用,多浏览器和操作系统平台。本文以Linux的发行版CentOS7作为安装的服务器讲解安装过程,其他版本也是类似的。github地址是http...
  上一篇博文已经使用程序实现了聊天功能,但是数据无法持久化,本文介绍一下数据持久化的实现思路。其实数据的持久化和消息服务器或者使用的协议都没有关系,属于应用层方面的事情。  实现思路主要有两点,即数据的存储于数据的读取。在数据存储方面,可以使用关系型或者非关系型数据库,可以保存频道和内容,接收到客...
  在《使用nginx-push-stream-module构建在线聊天室(一)》这篇文章中已经介绍了nginx-push-stream-module插件的安装,本文中介绍一下如何通过程序来实现聊天功能。   其实实现聊天功能一个是客户单代码另外是服务器端的代码,关于客户端的程序在安装源文件中也有...
  在线聊天的实现方案有很多,像Ajax长短轮循、富客户端、HTTP长连接、HTML5的event source和websocket等。目前来看HTML5的websocket比较具有优势,对于不支持H5的浏览器可以忽略或者采用兼容的形式来实现。接下来提到的nginx-push-stream-modu...
  有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理、即时通讯、文件下载、流媒体服务等功能,如果已经安装好了Nginx有不想重新安装覆盖的前提下如何新增模块呢?下面通过...
  很多云服务器(如阿里云)没有开启swap交换分区,安装某些比较占用内存的服务(例如MySQL5.7+、gitlab等)时如果物理内存不够则会安装失败,一种解决方案是购买更大的内存,另一种方案是可以设置交换分区,下面就以阿里云CentOS为例介绍一下增加交换分区的方法。首先创建一个文件用于swap...
  我们知道COOKIE保存在客户端,但是我们在设置和读取COOKIE的时候几乎无论使用什么语言编程都是在服务器端操作的,原理是通过HTTP的header传输信息。其实客户端的脚本语言JavaScript也是可以操作COOKIE的,默认情况下服务器端设置的COOKIE数据也是可以操作的,下面给出封装...
  pclzip可以将文件或文件夹压缩成zip格式的压缩文件,感觉还是比较好用的,可以满足线上对文件打包或者对压缩包进行解压的需求。下面给出几个例子和下载地址://压缩文件代码 require_once('pclzip.lib.php'); $zip = new Pcl...
  因为支付宝支付接口只有企业身份才能申请,但是由于种种原因个人开发者没有企业资质无法申请到支付接口权限,这也是很多开发者遇到的问题。在之前推出了支付宝支付接口开发系列课程之后也遇到了很多开发者的反馈:没有企业账号无法开发。  其实个人账号也可以进行支付宝支付接口调试的,那就是利用支付宝提供的沙箱环...
  首先需要安装Xdebug,如果没有安装可以查看PHP断点调试工具Xdebug的安装这篇文章。phpStorm是开发者经常用的一款编辑器,当然也支持Xdebug调试,下面说一下配置步骤。  phpStorm不需要安装插件所以配置起来比较简单,编辑器上依次打开文件->设置(或者Ctrl+Alt...
  首先需要安装Xdebug,如果没有安装可以查看PHP断点调试工具Xdebug的安装这篇文章。sublime text是开发者经常用的一款轻量级编辑器,在Xdebug调试上也是支持的,下面说一下配置步骤。首先需要安装sublime的xdebug插件,可以在线安装,但是在线安装可能会因为版本或者网络...
  Xdebug是一个PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。其实调试PHP还有其他工具比如Zend Debugger,但zend官方不是免费发布的,后来更新为zend Server也是收费版。而Xdebug是完全免费的并且功能也不差。其实xdebug可以看做PHP的扩展,如...
  CURL请求,支持GET和POST两种方式,默认为GET方式,如果传第二个参数则为POST方式请求,设置了超时时间,避免程序卡死。/** 使用curl方式实现get或post请求 @param $url 请求的url地址 @param $data 发送的post数据 如果为空则为get方式...
  在使用PHP对含有中文的数据进行json_encode编码时中文数据会被unicode编码导致中文变成类似"\u9ece\u660e\u4e92\u8054"的编码,有时需要处理转换才可以达到想要的目的。  其实json_encode函数还有第二个参数,如果第二个参数使用JS...
  在移动端上传图片的时候通常会将图片转换成base64格式的字符串提交,所以此时需要使用服务器端的程序进行转换成二进制的数据。如下PHP代码实现了图片文件和base64格式的图片字符串相互转换的方法,同时保证了图片字符串转图片文件时数据类型的问题,进行了简单的封装,使用时可根据实际情况进行修改。具...
  使用RSA算法除了加密解密之外(加密解密的代码可以查看本站PHP使用RSA算法加密解密数据 这篇文章),在支付等接口方面通常还会用到生成签名和验证签名操作,下面是PHP代码:class RSA{ /** * RSA签名 * @param $data 待签名数据 * ...
本文提供使用RSA算法加密解密数据的PHP程序类(签名和验签的实现方式可以查看使用PHP实现RSA算法的签名和验签 这篇文章),封装了格式化公钥和私钥文件的方法,这样无论使用什么格式的公钥或者私钥都可以正常运行,公钥加密后使用私钥解密或者私钥加密后用公钥解密都可以实现。下面是代码:class RSA...