简介

yun2win向开发者提供一站式通讯云服务。开发者通过下载客户端的SDK和云端API,不必投入开发成本,就可以简单快速的将通讯能力集成到自己的应用中。

我们经过深入的市场研讨和体验反馈发现,信息安全是用户在选择接入开放的通讯云服务时,最重要的标准和最大的顾虑。yun2win采用混合云架构、数据物理隔离方法,数据经由我们开源的云后台,直接传至您自主部署的存储位置,完全不经过yun2win服务器,绝无安全顾虑。

架构介绍

yun2win架构设计主要特点是:

  • 数据服务器开源,由开发者部署控制,yun2win不会收到任何消息数据。
  • App业务服务器、数据服务器可以部署至内网,只要客户端可以访问yun2win服务器,依然可以即时通讯。

由图可知,yun2win绝不收到或拥有开发者应用的任何消息数据。此特点极其适应对消息数据安全敏感的应用情境,如企业内部交流等。

获取AppKey

使用yun2win需要获得一个AppKeyAppSecret,就按以下步骤获取:

  1. 打开注册页面, 输入邮箱地址注册
  2. 注册成功后,打开登录页面,进入控制台
  3. 系统已经为您建立了一个应用,点击打开,在AppKey菜单里即可获得AppKeyAppSecret

提醒

请记下AppKeyAppSecret,后面服务器配置需要用到。

服务端部署

此部分主要是负责即时通讯业务数据的存储,包括:消息,会话,用户关系等。此部分有以下特点:

  • 完全开源
  • 对外接口是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镜像,可以很方便地部署到您想要的环境中。

  1. 安装Docker

    详细安装帮助可参考 :http://udn.yyuap.com/doc/chinese_docker/

  2. 下载镜像文件

    点击下面网址下载:yun2win_v0.3.tar.gz (223.1 MB)

    下载完成请解压缩

  3. 导入镜像

    
        $ sudo docker load --input yun2win.v0.3.tar
                                
  4. 新建容器启动

    
        $ sudo docker run -t -i -p 80:80 yun2win/centos:v0.3 /bin/bash
                                

    此容器启动时使用了端口映射,如果当前服务器80被占用,需要更改,如18080,则调整-p 80:80-p 18080:80即可

  5. 此时服务器的地址是: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

  1. 请使用Example文件夹内的API.xcworkspace打开项目
  2. 使用/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/
                        

部署配置