聊天服务器:Ejabberd 安装与离线转发模块的实现

CentOS HTTP Node.js XMPP

如果你在给一个IOS应用添加聊天功能,如果你打算自己搭建它,并且进行离线消息的推送的话,你首先需要一个XMPP服务器。而ejabberd就是很优秀的一款,且很容易扩展其功能。

本文中,首先用ejabberd启动XMPP聊天服务,再编写一个ejabberd扩展模块将离线消息转发到我们的web服务器。之后你就可以将离线消息从web服务器传输到APN服务器,让Apple推送给用户客户端。

开发环境:CentOS6.5,ejabberd2.1.13,nodejs0.10.26

记一次 RedHat 网络配置,回顾 KISS 原则

RedHat CentOS DHCP IP SSH TCP 网络 路由

最近搭建实验室网络和服务器,初试 RedHat EL 发行版。 感受企业级发行版和 Geek 级发行版的差异,重新体会 ArchLinux 的 KISS 原则。

先介绍下实验室的网络环境,一共两间房:楼下的机房和楼上的实验室。 机房有一台 H3C ER 路由器和一台交换机,实验室有一个路由器、一个交换机,加两个 WiFi 热点。 机房有两根线接上来到实验室。 我的任务是把机房的两台 RedHat 接入实验室网络并提供代理和 VPN 服务。 麻烦在于我只知道这两台机器是 RedHat,其他一无所知。

用 Console-COM 接口重置路由和重新接通实验室和机房网络之后,终于可以 ping 到我要去配置的服务器了。 本文的故事从登录到服务器开始。

Linux 路由表配置

ArchLinux DHCP DNS IP MAC TCP 网络 路由 systemd

局域网基本都是通过路由器来接入Internet,其中的路由器提供了众多的功能与服务。不妨用linux做局域网的路由,开启DHCP服务、IP转发、HTTP代理。这样不仅可以高度定制局域网的网络结构,而且可以实时监测局域网流量。

现在来让linux主机转发局域网流量,并设置代理对http数据进行有趣的修改。

以下以我使用的linux发行版ArchLinux为例,并忽略了发行版相关的软件安装过程。我的linux有两块网卡,无线网卡wlp13s0用于开通子网,有线网卡enp14s0作为出口。

读 HTTP 协议 RFC-2616

HTML HTTP TCP 网络 缓存

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP) 是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由 统一资源标识符(Uniform Resource Identifiers,URI) 来标识。

HTTP协议标准是由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)制定的,其中最著名的是RFC-2616,定义了HTTP协议中现今广泛使用的一个版本—HTTP 1.1。

第一个版本的HTTP(HTTP/0.9)用于Internet上的传输原始数据;HTTP/1.0加入了MIME支持、元数据、请求/应答限定符。

对web开发者而言HTTP协议的用法已耳熟能详,本文只记录与web开发相关的HTTP重要细节。

HTTP是一种通用的、无状态的应用层协议,适用于分布式、协同的、超媒体信息系统。通过一些扩展(如请求方法、错误码、头信息),HTTP可用于超文本外的其他用途,例如命名服务器、分布式对象管理。HTTP的特点在于数据表示的类型与协商,允许建立系统时不必考虑数据是如何传输的。

读 TCP 协议 RFC-793

IP Socket TCP 反码 接口 网络 路由 进程 多路复用 操作系统 电路交换

TCP被作为一种运行在分组交换网络(以及它们的互联系统)上的高可靠的主机到主机协议。TCP是面向连接的、端到端的通用协议,却对下层协议的假设甚少(可以是多网络环境,只要求一个不可靠的报文服务),一般用于互联网上不同主机的进程间通信。 现行协议版本被IETF标准化为RFC-793

虽然TCP主要运行在互联网的IP协议层之上,但原则上,TCP能够在多种通信系统上进行操作,从硬连线连接到分组交换或电路交换系统。

上一页 下一页