yaws mysql_cb_tutorial: 配套《chicagoboss tutorial cn》做的项目,一个简易的聊天是了 http://localhost:8001/chat/we_are_...

系统要求

erlang 18.3

ChicagoBoss branch master (目前的 commit id 是 6a455b98b7e1b08c1119e96d36b23155d223722d(Commits on Jun 27, 2016))

yaws 2.0

mysql 5.6

开始

Download the Chicago Boss 0.7.0 source code from here: chicagoboss;

从这儿下载“芝加哥老板”0.7.0版本的源码:chicagoboss;

The first task is to open the archive, compile the code, and create a new project.

第一个任务是打开文档,编译代码,并创建一个新项目。

clone https://github.com/ChicagoBoss/ChicagoBoss.git ChicagoBoss

cdChicagoBoss

make

make app PROJECT=cb_tutorial

cb_tutorial将是新项目的名称;进入新项目目录。

cd ../cb_tutorial

ls -l

-rwxrwxrwx@ 1 leeyi staff 1.3K Jul 22 11:45 Makefile

-rw-r--r-- 1 leeyi staff 1.3K Jul 29 12:40 README.MD

-rwxrwxrwx@ 1 leeyi staff 13K Jul 20 09:44 boss.config

drwxrwxrwx 41 leeyi staff 1.4K Jul 20 09:54 deps

drwxrwxrwx 9 leeyi staff 306B Jul 24 19:04 ebin

drwxrwxrwx 2 leeyi staff 68B Jul 20 09:44 include

-rwxrwxrwx 1 leeyi staff 132B Jul 20 09:44 init-dev.sh

-rwxrwxrwx@ 1 leeyi staff 1.9K Jul 20 09:44 init.sh

drwxrwxrwx 7 leeyi staff 238B Jul 29 12:00 log

drwxrwxrwx 9 leeyi staff 306B Jul 20 09:45 priv

-rwxrwxrwx 1 leeyi staff 198K Jul 20 09:44 rebar

-rwxrwxrwx 1 leeyi staff 77B Jul 20 09:44 rebar.cmd

-rwxrwxrwx 1 leeyi staff 261B Jul 20 09:44 rebar.config

drwxrwxrwx 11 leeyi staff 374B Jul 24 19:04 src

-rwxrwxrwx 1 leeyi staff 182B Jul 20 09:44 start-server.bat

启动服务:

./rebar get-deps compile

./init-dev.sh

目录结构

结构

todo

一个CB应用程序可能有几个部分:

网络控制器,并给出了一个HTTP请求信息并决定如何处理它

网页视图,它提供了一个控制器返回的数据

模型,它提供了一个数据库的抽象层(如果有的话)

电子邮件控制器和视图

初始化脚本

测试脚本

一个路由配置文件

CB服务器启动的许多服务可以被属于服务器的所有应用程序应用到:

一个URL路由器(BossRouter)

一个会话存储层(BossSession)

一个数据库连接和缓存层(BossDB和BossCache)

一个消息队列服务(BossMQ)

一个模型事件系统(BossNews)

一个电子邮件服务器(BossMail)

后端配置

设置文件 boss.config,第 330 行,如果设置为

{backend, yaws},

需要修改过文件(deps/boss/rebar.config),把第36行前面的注释去掉

%{yaws, ".*", {git, "https://github.com/klacke/yaws.git", {tag, "yaws-2.0"}}},

// 修改为

{yaws, ".*", {git, "https://github.com/klacke/yaws.git", {tag, "yaws-2.0"}}},

get-deps 期间可能有失败,获取那个依赖失败,直接用 rm -rf deps/[deps-name] ,之后再 rebar get-deps ;

如果36行没有yaws,主要修改 rebar.config 第2行 {branch, "master"} ,之后,执行下列shell命令:

./rebar delete-deps

// 如果 deps还有文件,就直接

rm -rf deps

// 不能注释 mochiweb 和 cowboy 和 yaws

./rebar clean get-deps compile

数据库设置

修改配置文件 boss.config “Database”一节:

{db_host, "localhost"},

{db_port, 3306},

{db_adapter, mysql},

{db_username, "admin"},

{db_password, "123456"},

{db_database, "cb_tutorial"},

CREATE SCHEMA `cb_tutorial` DEFAULT CHARACTER SET utf8 ;

CREATE TABLE `cb_tutorial`.`cb_greetings` (

`id` INT NOT NULL AUTO_INCREMENT,

`greeting_text` VARCHAR(140) NULL,

`create_time` BIGINT(16) NULL DEFAULT 0 COMMENT '公历 0 年开始到以给定的日期和时间(当前的世界标准时间(UTC))为结束间的秒数',

PRIMARY KEY (`id`)

) PACK_KEYS = Default;

CREATE TABLE `cb_tutorial`.`cb_chats` (

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,

`channel` VARCHAR(45) NOT NULL DEFAULT 'chats' COMMENT '聊天频道',

`nickname` VARCHAR(45) NOT NULL COMMENT '聊天用户昵称',

`text` VARCHAR(140) NULL COMMENT '聊天内容',

`create_time` BIGINT(16) NULL DEFAULT 0 COMMENT '公历 0 年开始到以给定的日期和时间(当前的世界标准时间(UTC))为结束间的秒数',

PRIMARY KEY (`id`)

) PACK_KEYS = Default, COLLATE = utf8_unicode_ci, ENGINE = MyISAM , COMMENT = '聊天室记录' ;

CREATE TABLE `cb_tutorial`.`cb_members` (

`id` INT NOT NULL,

`uuid` VARCHAR(36) NOT NULL COMMENT '用户全局唯一身份标示,标准uuid,36位长度',

`nickname` VARCHAR(40) DEFAULT NULL COMMENT '用户昵称',

`email` VARCHAR(80) DEFAULT NULL,

`mobile` VARCHAR(16) DEFAULT NULL,

`password` VARCHAR(40) NOT NULL COMMENT '登录密码',

`sold` VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,

`last_login_time` BIGINT(16) DEFAULT 0,

`last_login_ip` VARCHAR(40) NULL,

`reg_time` BIGINT(16) NOT NULL,

`reg_ip` VARCHAR(40) NULL,

`login_times` INT NULL DEFAULT 0 COMMENT '登录次数',

`signature` VARCHAR(255) NULL COMMENT '个性签名',

PRIMARY KEY (`id`),

UNIQUE INDEX `nickname_UNIQUE` (`nickname` ASC),

UNIQUE INDEX `mobile_UNIQUE` (`mobile` ASC),

UNIQUE INDEX `email_UNIQUE` (`email` ASC),

UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `cb_tutorial`.`cb_counters` (

`name` varchar(255) NOT NULL,

`value` int(11) DEFAULT '0',

PRIMARY KEY (`name`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `cb_tutorial`.`cb_members` (`id`, `uuid`, `nickname`, `password`, `sold`, `last_login_time`, `reg_time`, `login_times`, `signature`) VALUES ('1', 'e949f8a-5d42-11e6-9e4e-a45e60bb8fad', 'leeyi', '123456', 'e949f8a-5d42-11e6-9e4e-a45e60bb8fad', '0', '0', '0', 'hello');

ALTER TABLE `cb_tutorial`.`counters` RENAME TO `cb_tutorial`.`cb_counters`;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值