部署一个基于 Meteor 的 Web 和移动聊天服务器(2)
- UID
- 1066743
|
部署一个基于 Meteor 的 Web 和移动聊天服务器(2)
第 4 步. 设置需要的应用程序环境变量并启动服务器您必须至少设置以下环境变量,服务器才能正确启动:
- ROOT_URL,用于访问服务器的 URL
- MONGO_URL,服务器用于访问您的 MongoDB 实例的 URL
- 运行以下命令,替换来自您的提供程序的 MongoDB 信息:cf set-env your-app-name MONGO_URL mongodb://user-name:password@hostname:port/database-name
cf set-env your-app-name ROOT_URL https://your-app-name.mybluemix.net
- 确认这些环境变量已设置:cf env your-app-name
该命令输出显示了您的环境变量的值: 1
2
3
4
5
6
7
8
9
10
| Getting env variables for app singdevchat in org developerWorks /
space Sing-Li as westmakaha@yahoo.com...
OK
System-Provided:
...
User-Provided:
MONGO_URL: mongodb://rocketchat:xxxxx@xxxxxxxxx:88888/bluerocket
ROOT_URL: https://singdevchat.mybluemix.net
|
- 启动服务器:cf start your-app-name
- 查看执行服务器暂存和部署时的命令输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| Starting app singdevchat in org developerWorks / space Sing-Li as westmakaha@yahoo.com...
-----> Downloaded app package (3.9M)
Cloning into '/tmp/buildpacks/bluemix-buildpack-meteor'...
-----> Resolving engine versions
No version of Node.js specified in nodeversion, using '0.10.*'
Using Node.js version: 0.10.40
-----> Fetching Node.js binaries
- downloading and extracting node from http://nodejs.org/dist/v0.10.40/node-v0.10.40-linux-x64.tar.gz
Installing meteor
######################################################################## 100.0%
Downloading Meteor distribution
######################################################################## 100.0%
Meteor 1.2.1 has been installed in your home directory (~/.meteor).
�
Requested state: started
instances: 1/1
usage: 512M x 1 instances
urls: singdevchat.mybluemix.net
last uploaded: Mon Nov 30 04:39:28 UTC 2015
stack: cflinuxfs2
buildpack: https://github.com/ind1go/bluemix-buildpack-meteor.git
state since cpu memory disk details
#0 running 2015-11-29 11:55:44 PM 0.0% 255.9M of 512M 284.5M of 1G
|
第 5 步. 创建一个管理用户您的群聊服务器现在正在运行。Rocket.Chat 支持最新版本的 Chrome、Safari 和 Firefox,也可以使用 iPhone 和 Android 手机浏览器。
- 在浏览器中,在 https://your-app-name.mybluemix.net 上访问您的服务器。这是默认登录页面:
- 单击 Register a new account 并输入需要的信息来创建一个新用户。第一个用户会成为管理用户,可为其他用户提供管理特权。
- 以管理用户身份登录,单击左上角的面板并从菜单中选择 Administration 来核对管理选项:
可通过 Administration 菜单执行的任务包括:
- 查看服务器统计数据
- 管理服务器上的用户和聊天室
- 配置 GitHub、 、Facebook、Twitter、LinkedIn、WordPress、LDAP、SAML 等的单一登录
- 设置主题中使用的颜色和登录页上的页眉徽标
- 设置用于传出电子邮件通知的 SMTP 服务器
- 配置一般的聊天 UI 行为
第 6 步. 添加更多用户并探索特性向小组的其他成员发送包含服务器的 URL 的电子邮件邀请。他们可在服务器上注册新帐户。然后在您的小组中尝试一些新特性:
- 设置您的头像:单击左上角的面板并选择 My Account > Change avatar。
- 在 #general 室内彼此发送消息。
- 创建新的公共聊天室。
- 彼此发送私聊消息。
- 创建一个私人聊天室并邀请其他用户。
- 将文件拖到聊天窗口中来将其上传到服务器。
- 下载上传的文件。
- 通过发送其 URL 来共享多媒体链接,比如 YouTube 电影或 PNG 文件。
- 更改 UI 使用的语言;Rocket.Chat 开箱即用地支持超过 22 种语言。
- 与其他用户开始视频或语音聊天(这仅适用于 的浏览器)。
全面了解这个功能丰富的聊天服务器。您可能会找到许多适合您的聊天小组的功能。
第 7 步. 扩展 Rocket.Chat(可选)扩展 Rocket.Chat 的特性的首选方式是通过 ,这是 GitHub 开发的一个开源自动化接口。在这里,您可以实时地看到在项目的 GitHub 存储库中发生的,hubot 向 Rocket.Chat 社区服务器公布的活动:
Hubots 是简单的程式脚本,可以使用 CoffeeScript 或 JavaScript 编写。这些脚本通常在一台单独的计算机上运行并以普通用户身份连接到聊天服务器。hubot 以 Node.js 可执行程序的形式运行,可使用任何可用的 Node.js 库。
您不需要知道 Rocket.Chat 的内部接口即可编写 hubot。Hubot 提供了一种简单的编程抽象方法。您可从 Hubot 文档学到需要的所有知识。
包含许多可立即用于 Rocket.Chat 的示例程式。Rocket.Chat 还拥有与 GitHub(或 GitLab)连接的 。这些程式可实时地向聊天室报告代码存储库活动(比如创建和修改 pull 请求、合并、问题或评论)。该程式还能够从 GitHub 获取 pull 请求、问题和要点等数据。随着时间的推移,可以证明这些程式对我的开发人员好友群体具有宝贵的价值。
第 8 步. 探究 Rocket.Chat 源代码(可选)Rocket.Chat 是一个快速演变的开源项目,有一个庞大的全球贡献者社区(目前超过 100 人)。源代码和关联的工具会在一段时间内发生巨大的变化。
如果您已熟悉 编程,您将会熟悉 Rocket.Chat 的代码库的结构。如果不熟悉,可以学习 来稍加了解。
为了帮助您开始自行分析源代码,这里是一些主要源代码目录和文件,以及它们当前的内容:
- Rocket.Chat/Dockerfile 为服务器构建可部署的 Docker 。
- Rocket.Chat/docker-compose.yml 使用 运行服务器和 MongoDB 容器。
- Rocket.Chat/server 包含服务器端代码。
- Rocket.Chat/server/methods 包含可从客户端调用的 Meteor 远程方法。
- Rocket.Chat/server/publications 包含 Meteor 发布实现。
- Rocket.Chat/server/startup 包含在启动时运行的服务器逻辑。
- Rocket.Chat/client 包含客户端代码。
- Rocket.Chat/client/routes 包含由 处理的应用程序路由。
- Rocket.Chat/client/startup/startup.coffee 是客户端在启动时运行的内容。
- Rocket.Chat/public 包含静态资源,比如字体和图像,以及一些通用代码。
- Rocket.Chat/packages 包含模块化代码,这些代码采用 Meteor 包的形式,构成了服务器逻辑的很大一部分。
- Rocket.Chat/packages/rocketchat-ui 是包含核心 UI 的包。
- Rocket.Chat/packages/rocketchat-ui/views/app 包含核心 UI 视图和关联的 Meteor 模板。当前的 UI 是使用 Meteor Blaze 构造的。
- Rocket.Chat/packages/rocketchat-ui-XXX 是包含各种 UI 组件的实现的包。
- Rocket.Chat/packages/rocketchat-lib/server/models 包含聊天服务器逻辑所使用的数据模型定义,目前在 MongoDB 中实现。
|
|
|
|
|
|