需求
众所周知的原因,使用公用的即时聊天工具并不安全,比如某企鹅家的"wei xin",我们需要一个自己的安全的聊天工具,比如我们需要传递账号以及密码等;
方案1:
使用网页工具将文本加密,然后复制粘贴;之后收到密文后,手动复制粘贴解密;效率比较低;
方案2:
使用端对端的通信工具:telegram,whatsapp等;
方案3:
自己架设一个服务器,然后使用自己的客户端来通信;
比如,我发现了一个好东西,Tinode
服务器下载地址为:Release Bug fixes · tinode/chat · GitHub
架设流程
首先,我们需要一台公网的服务器,
1)设置mysql数据库,
参考之前的帖子,第5节:
OpenGts2.6.7 安装笔记(windows更容易些)_飞鸟真人的博客-CSDN博客
2)准备一个邮箱账号用与发送验证码
我这里使用了一个sina.com的账号,
目前很多邮件服务器,使用stmp服务时候都需要一个授权码来登录并发信,
在服务器配置时候需要;
3)配置服务器
我下载的版本是:
tinode-alldbs.linux-amd64.tar.gz
加压后,需要编辑一下tinode.conf
mysql的设置部分:
"store_config": {
"uid_key": "la6YsO+bNX/+XIkOqc5Svw==",
"max_results": 1024,
"use_adapter": "mysql",
"adapters": {
"mysql": {
"User": "root",
"Passwd": "123456",
"Net": "tcp",
"Addr": "127.0.0.1",
"DBName": "tinode",
"Collation": "utf8mb4_unicode_ci",
"ParseTime": true,
"max_open_conns": 64,
"max_idle_conns": 64,
"conn_max_lifetime": 60,
"sql_timeout": 10
}
}
}
重要的是地址、用户名、口令,我使用默认的端口,所以没有写;
另外就是邮件服务器的设置:
"email": {
"add_to_tags": true,
"required": ["auth"],
"config": {
"host_url": "http://127.0.0.1:6060/",
"smtp_server": "smtp.sina.com",
"smtp_port": "25",
"sender": "\"Tinode\" <tinode@sina.com>",
"login": "tinode@sina.com",
"sender_password": "xxxxxxxxxxxxxxxxxxxxxx",
"auth_mechanism": "login",
"smtp_helo_host": "sina.com",
"insecure_skip_verify": false,
"languages": ["en", "es", "fr", "ru", "vi", "zh"],
"validation_templ": "./templ/email-validation-{{.Language}}.templ",
"reset_secret_templ": "./templ/email-password-reset-{{.Language}}.templ",
"max_retries": 3,
"domains": [],
}
},
这里需要注意的就是用户名,授权码,以及smtp服务器的名字不要写错了!!!
最后,
需要在防火墙上打开6060端口!!!
配置完成后,初始化数据库:
./init-db -config=./tinode.conf -data=./data.json
如果没有报错,就是OK 了,
启动服务器
./tinode -config=./tinode.conf -static_data=static
此时可以看到屏幕输出,调试完成后,可以在后台运行
nohup ./tinode -config=./tinode.conf -static_data=static & exit
或者使用screen 辅助在后台运行。
4)服务器的使用
服务器启动后,通过IP就可以访问了,打开网页客户端,十分贴心
http://ip:6060
如下图
点一下带加号的人头像,注册:
这几项,分别是:
登录用户名,密码,显示的昵称,邮箱,
注意:这里需要使用真实的邮箱,然后通过邮箱接收邮件获取动态验证码完成注册!!!
登录后,就可以愉快的聊天了,比如在IM中或者手机浏览器中打开:
备注:
搜索好友使用需要使用如下格式:
mail:zhangsan@sina.com
祝大家玩的愉快!
后记,如果需要加密传输,应该打开https方式:
1)首先创建证书
使用openssl制作https的证书_forwardMyLife的博客-CSDN博客_openssl制作https证书
2)更改配置:
"tls": {
"enabled": true,
"http_redirect": ":80",
"strict_max_age": 604800,
"cert_file": "/root/certs/cert.crt",
"key_file": "/root/certs/private.key"
},
重启服务,使用
https://127.0.0.1:6060
访问!