• 使用tinode架设自己的私有聊天服务



     

    需求

    国内的商用im软件都不是开源客户端,谁也不知道他们到底干了点啥撒。有时还是需要私有云im来保证数据安全,比如我们需要传递账号以及密码等;

    方案1:

    使用网页工具将文本加密,然后复制粘贴;之后收到密文后,手动复制粘贴解密;效率比较低;

    方案2:

    使用端对端的通信工具:telegram,whatsapp等;

    方案3:

    自己架设一个服务器,然后使用自己的客户端来通信;开源的有很多,需要在易用性,稳定性,扩展性上做取舍,

    比如,我发现了一个好东西适合小公司,Tinode 

    服务器下载地址为:Release Bug fixes · tinode/chat · GitHub

     

    架设流程

    首先,我们需要一台公网的服务器,

    1)设置mysql数据库,

    参考之前的帖子,第5节:
    OpenGts2.6.7 安装笔记(windows更容易些)_飞鸟真人的博客-CSDN博客

    2)准备一个邮箱账号用与发送验证码

    我这里使用了一个sina.com的账号,

    目前很多邮件服务器,使用stmp服务时候都需要一个授权码来登录并发信,

    42833859aa7a45b7b49b895ddcf2c765.png

     在服务器配置时候需要;

    3)配置服务器

    我下载的版本是:

    tinode-alldbs.linux-amd64.tar.gz

    加压后,需要编辑一下tinode.conf

    mysql的设置部分:

    1. "store_config": {
    2. "uid_key": "la6YsO+bNX/+XIkOqc5Svw==",
    3. "max_results": 1024,
    4. "use_adapter": "mysql",
    5. "adapters": {
    6. "mysql": {
    7. "User": "root",
    8. "Passwd": "123456",
    9. "Net": "tcp",
    10. "Addr": "127.0.0.1",
    11. "DBName": "tinode",
    12. "Collation": "utf8mb4_unicode_ci",
    13. "ParseTime": true,
    14. "max_open_conns": 64,
    15. "max_idle_conns": 64,
    16. "conn_max_lifetime": 60,
    17. "sql_timeout": 10
    18. }
    19. }
    20. }

    重要的是地址、用户名、口令,我使用默认的端口,所以没有写;

    另外就是邮件服务器的设置:

    1. "email": {
    2. "add_to_tags": true,
    3. "required": ["auth"],
    4. "config": {
    5. "host_url": "http://127.0.0.1:6060/",
    6. "smtp_server": "smtp.sina.com",
    7. "smtp_port": "25",
    8. "sender": "\"Tinode\" ",
    9. "login": "tinode@sina.com",
    10. "sender_password": "xxxxxxxxxxxxxxxxxxxxxx",
    11. "auth_mechanism": "login",
    12. "smtp_helo_host": "sina.com",
    13. "insecure_skip_verify": false,
    14. "languages": ["en", "es", "fr", "ru", "vi", "zh"],
    15. "validation_templ": "./templ/email-validation-{{.Language}}.templ",
    16. "reset_secret_templ": "./templ/email-password-reset-{{.Language}}.templ",
    17. "max_retries": 3,
    18. "domains": [],
    19. }
    20. },

    这里需要注意的就是用户名,授权码,以及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

    如下图

    4101ad02771a4da291bb071ebef141f6.png

    点一下带加号的人头像,注册:

    081fa995e581444bba1b6eaa5566fd45.png

     这几项,分别是:

    登录用户名,密码,显示的昵称,邮箱,

    注意:这里需要使用真实的邮箱,然后通过邮箱接收邮件获取动态验证码完成注册!!!

     

    登录后,就可以愉快的聊天了,比如在IM中或者手机浏览器中打开:

    f5c079ce9ab74d8bb6aada39dc40278a.jpeg

     备注:

    搜索好友使用需要使用如下格式:

    mail:zhangsan@sina.com

    祝大家玩的愉快!

    后记,如果需要加密传输,应该打开https方式:

    1)首先创建证书

    使用openssl制作https的证书_forwardMyLife的博客-CSDN博客_openssl制作https证书

    2)更改配置:

    1. "tls": {
    2. "enabled": true,
    3. "http_redirect": ":80",
    4. "strict_max_age": 604800,
    5. "cert_file": "/root/certs/cert.crt",
    6. "key_file": "/root/certs/private.key"
    7. },

    重启服务,使用

    https://127.0.0.1:6060

    访问!

     

     

  • 相关阅读:
    How to capture Microsoft logs IE Activex issue
    iptables防火墙(一)
    前端基础入门
    手动实现一个Spring 框架IOC容器
    从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
    最长上升子序列 II
    第二章:Spring核心思想和IOC和AOP依赖注入
    词对齐任务:依附于机器翻译
    python学习之基本语法---语法规则---注释,标识符,关键字,命名规则(二)day8
    centos安装mysql | 修改原始密码 | 错误状态码 ERROR 1819 | ERROR 1045(28000)
  • 原文地址:https://blog.csdn.net/robinfoxnan/article/details/128111401