简介
yun2win向开发者提供一站式通讯云服务。开发者通过下载客户端的SDK和云端API,不必投入开发成本,就可以简单快速的将通讯能力集成到自己的应用中。
我们经过深入的市场研讨和体验反馈发现,信息安全是用户在选择接入开放的通讯云服务时,最重要的标准和最大的顾虑。yun2win采用混合云架构、数据物理隔离方法,数据经由我们开源的云后台,直接传至您自主部署的存储位置,完全不经过yun2win服务器,绝无安全顾虑。
架构介绍
yun2win架构设计主要特点是:
- 数据服务器开源,由开发者部署控制,yun2win不会收到任何消息数据。
- App业务服务器、数据服务器可以部署至内网,只要客户端可以访问yun2win服务器,依然可以即时通讯。
由图可知,yun2win绝不收到或拥有开发者应用的任何消息数据。此特点极其适应对消息数据安全敏感的应用情境,如企业内部交流等。
获取AppKey
使用yun2win需要获得一个AppKey
和AppSecret
,就按以下步骤获取:
提醒
请记下AppKey
和AppSecret
,后面服务器配置需要用到。
服务端部署
此部分主要是负责即时通讯业务数据的存储,包括:消息,会话,用户关系等。此部分有以下特点:
- 完全开源
- 对外接口是RESTful Api
- 由开发者自行部署,数据安全放心
下载
服务端代码放在github.com开源,请从以下网址下载:
https://github.com/yun2win/yun2win-sdk-server
提醒
代码请下载releases的稳定版本
环境安装
运行此服务硬件需求(建议):
- CPU:双核
- 内存:8G
- 存储:200G
- 带宽:5M
运行此服务软件需求:
- 操作系统:centos 5.8+ (建议)
- 运行环境:nodejs 0.8+
- 进程管理:pm2
- 数据库:mysql
1,安装nodejs
在命令行执行命令操作,首先安装依赖库与工具:
复制
yum -y install gcc make gcc-c++ openssl-devel wget
此命令运行需要网络下载对应的程序包。如果服务器无法连网请使用docker部署方案
下载nodejs:
复制
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
将其解压:
复制
tar -zvxf node-v0.10.26.tar.gz
编译及安装:
复制
cd node-v0.10.26
make && make install
最后验证是否成功:
复制
node -v
如果出现版本信息,则表示已经安装成功了
2,安装pm2
nodejs安装成功后,直接使用:
复制
npm install pm2 -g
等待几秒钟即可,如果有权限问题请使用:
复制
sudo npm install pm2 -g
3,安装mysql
在命令行输入以下指令安装:
复制
yum install -y mysql-server mysql mysql-devel
CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载
复制
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-community-server
此命令运行需要网络下载对应的程序包。如果服务器无法连网请使用docker部署方案
安装完成后就启动mysql:
复制
service mysqld start
mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,执行以下命令设定密码:
复制
mysqladmin -u root password ‘【新密码】‘
然后新建数据库yun2win_db,注意注意字符集需要设定为utf-8
。下面先登陆mysql:
复制
mysql -u root -p
输入密码,然后执行
复制
CREATE DATABASE yun2win_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
提醒
请记下新密码
和数据库帐号
,和数据库名称yun2win_db
,后面服务器配置需要用到。
部署配置
在运行之前先要配置,打开文件 app/config.js
复制
module.exports={
//数据库配置
db:{
host:"localhost", //默认用本地,如果非本地数据请更改
database:"{数据库名称}", //如未更改则是yun2win_db
username:"sa", //数据库帐号
password:"{数据库密码}",
dialect:"mysql"
},
//客户端配置,用于客户端连接本服务器和通知服务器的信息
client:{
appKey:"{appKey}",
appSerect:"{appSerect}",
tokenPeriod:24*30 //token有限时间,单位小时
},
//会话配置
session:{
userConvrKeepAlive:1 //活跃用户会话的时间,单位小时
},
//设为true,则启动时会运行基本测试用例,如果测试用例通过则表示部署成功了。
testing:false
};
注意,安装好mysql后要新建个数据库。配置完成后,将所有代码复制到服务器的/root/yun2win
文件夹上。如果你没权限访问,则可以复制到任一文件夹。 然后命令行执行安装需要的模块:
复制
cd /root/yun2win //如果你更改过目录,这里也要更改
npm install
然后即可启动
复制
pm2 start server.js
启动成功后,可以使用指令pm2 list
查看运行情况。
为了让程序能自启动,还要执行:
复制
pm2 save
pm2 startup
到此就部署完成,使用ifconfig
查看服务器IP
,服务器的网址为http://{服务器IP}:18080
提醒
请记下服务器网址并提供给客户端: http://{服务器IP}
:18080
如果需要更改服务器服务端口,请打开server.js
复制
/**
* Module dependencies.
*/
var app = require(‘./app‘);
var debug = require(‘debug‘)(‘web:server‘);
var http = require(‘http‘);
/**
* Get port from environment and store in Express.
*/
//在这里改成您想要的端口,如80
var port = normalizePort(process.env.PORT || ‘18080‘);
app.set(‘port‘, port);
如要把端口改成80:
复制
/**
* Module dependencies.
*/
var app = require(‘./app‘);
var debug = require(‘debug‘)(‘web:server‘);
var http = require(‘http‘);
/**
* Get port from environment and store in Express.
*/
app.set(‘port‘, ‘80‘);
提醒
如果更改了端口,则提供给客户端的地址也要更改: http://{服务器IP}
:{新端口}
Docker部署
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用和依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架包括系统。
为了更方便让开发者部署,我们也提供了Docker镜像,可以很方便地部署到您想要的环境中。
- 安装Docker
详细安装帮助可参考 :http://udn.yyuap.com/doc/chinese_docker/
- 下载镜像文件
点击下面网址下载:yun2win_v0.3.tar.gz (223.1 MB)
下载完成请解压缩
- 导入镜像
复制
$ sudo docker load --input yun2win.v0.3.tar
- 新建容器启动
复制
$ sudo docker run -t -i -p 80:80 yun2win/centos:v0.3 /bin/bash
此容器启动时使用了端口映射,如果当前服务器80被占用,需要更改,如18080,则调整
-p 80:80
为-p 18080:80
即可 - 此时服务器的地址是:
http://{服务器IP}
Web端集成
下载
服务端代码放在github.com开源,请从以下网址下载:
https://github.com/yun2win/yun2win-sdk-web/
环境安装
运行此服务硬件需求(建议):
- CPU:双核
- 内存:2G
- 带宽:5M
运行此服务软件需求:
- 操作系统:windows, mac, linux
部署配置
在运行之前先要配置,打开文件 js/core/config.js
复制
config.baseUrl = http://{服务器IP}
iOS端集成
此部分为即时通讯iOS客户端SDK,包括:MQTT模块。此部分有以下特点:
- 框架轻
- 适合弱网
- 可对接物联网
下载
服务端代码放在github.com开源,请从以下网址下载:
https://github.com/yun2win/yun2win-sdk-server
提醒
代码请下载releases的稳定版本
环境安装
编译环境:
- Xcode-Version 7.2.1 (7C1002)及以上
设备环境:
- 设备型号
- iPhone5及以上
- 设备系统
- iOS8.0及以上
部署配置
下载解压后有两个文件夹,Example(示例代码)和Y2W_IM_SDK
- 请使用Example文件夹内的API.xcworkspace打开项目
- 使用
/API/Model/Y2WServiceConfig.m
文件中+ (NSString *)domain
方法进行服务器地址配置,只需更改地址和端口即可切换服务器+ (NSString *)domain { return @"{服务器IP}"; // 例如: @"http://192.169.0.1:8080/" }
Android端集成
下载
客户端代码放在github.com开源,请从以下网址下载:
https://github.com/yun2win/yun2win-sdk-android
提醒
代码请下载releases的稳定版本
环境安装
设备环境:
- android手机
- 系统4.2以上
编译环境:
- 运行环境:android studio
下载android studio:
复制
wget http://www.android-studio.org/
部署配置
- github下载源码解压到本地
- 安装android studio
- 打开android studio 选择导入源码
- 如果配置了数据服务后台,修改服务器地址
-
获取AppKey并且修改