移动端仿钉钉聊天 git_使用Git作为聊天的后端

GIC是一个实验性的聊天客户端,使用Git作为后端数据库,通过Node.js实现。尽管不适合生产环境,但它展示了Git的灵活性。用户需要一个Git仓库作为聊天室,每个消息都是一个提交。GIC的安装涉及Git、Node.js和npm的安装,用户配置主要包括设置Git仓库位置。聊天发生在Git分支上,提供了一种独特的聊天体验。
摘要由CSDN通过智能技术生成

移动端仿钉钉聊天 git

Git是那些设法将大量现代计算封装到一个程序中的罕见应用程序之一,最终成为许多其他应用程序的计算引擎。 尽管它最着名的是跟踪软件开发中的源代码更改,但它还有许多其他用途,可以使您的生活更轻松,更有条理。 在4月7日Git成立14周年之前的系列文章中,我们将分享7种鲜为人知的Git使用方法。 今天,我们将介绍基于Git的聊天应用程序GIC

认识GIC

虽然Git的作者可能期望为Git创建前端,但毫无疑问,他们从未期望Git会成为聊天客户端的后端。 但是,这正是开发人员Ephi Gabay使用其实验性概念验证GIC所做的工作:一个使用Git作为后端数据库,以Node.js编写的聊天客户端。

GIC绝非用于生产用途。 这纯粹是一种编程练习,但它证明了开源技术的灵活性。 令人惊讶的是,该客户端仅由300行代码组成,不包括Node库和Git本身。 这是关于聊天客户端和开源的最好的事情之一。 以现有工作为基础的能力。 眼见为实,所以您应该给GIC自己看看。

设置好

GIC使用Git作为引擎,因此您需要一个空的Git存储库作为其聊天室和记录器。 只要您和需要访问聊天服务的任何人都可以访问该存储库,就可以在任何地方托管该存储库。 例如,您可以在免费的Git托管服务(如GitLab)上建立Git存储库,并向聊天用户授予贡献者对Git存储库的访问权限。 (他们必须能够对存储库进行提交,因为每个聊天消息都是文字上的提交。)

如果您自己托管它,请创建一个位于中央的裸存储库。 聊天中的每个用户都必须在裸存储库所在的服务器上拥有一个帐户。 您可以创建帐户特定的Git Git的托管软件像GitoliteGitea ,或者你可以给他们单独的用户帐户的服务器上,可能使用Git壳限制他们的Git访问。

在自托管实例上,性能最佳。 无论您自己托管还是使用托管服务,您创建的Git存储库都必须具有活动分支,否则由于没有Git HEAD,GIC在用户聊天时将无法进行提交。 确保分支被初始化并处于活动状态的最简单方法是在创建时提交自述文件或许可证文件。 如果您不这样做,则可以在事实发生后创建并提交一个:


   
   
$ echo "chat logs" > README
$ git add README
$ git commit -m 'just creating a HEAD ref'
$ git push -u origin HEAD

安装GIC

由于GIC是基于Git并用Node.js编写的,因此您必须首先安装Git,Node.js和Node软件包管理器npm(应与Node捆绑在一起)。 安装这些命令的命令因您的Linux或BSD发行版而异,但这是Fedora上的示例命令:

 $ sudo dnf install git nodejs 

如果您未运行Linux或BSD,请按照git-scm.comnodejs.org上的安装说明进行操作

因此,GIC没有安装过程。 每个用户(在本示例中为Alice和Bob)必须将存储库克隆到其硬盘驱动器:

 $ git clone https://github.com/ephigabay/GIC GIC 

将目录更改为GIC目录,并使用npm安装Node.js依赖项:


   
   
$ cd GIC
$ npm install

等待节点模块下载并安装。

配置GIC

GIC唯一需要的配置是Git聊天库的位置。 编辑config.js文件:


   
   
module.exports = {
    gitRepo: 'seth@example.com:/home/gitchat/chatdemo.git',
    messageCheckInterval: 500,
    branchesCheckInterval: 5000
};

在尝试GIC之前,请测试您与Git存储库的连接,只是为了确保您的配置是合理的:

 $ git clone --quiet seth@example.com:/home/gitchat/chatdemo.git > /dev/null 

假设您没有收到任何错误,就可以开始聊天了。

与Git聊天

从GIC目录中,启动聊天客户端:

 $ npm start 

客户端首次启动时,它必须克隆聊天库。 由于它几乎是一个空的存储库,因此不会花费很长时间。 输入您的消息,然后按Enter以发送消息。

GIC

基于Git的聊天客户端。 他们接下来会怎么想?

如问候消息所述,Git中的分支充当GIC中的聊天室或频道。 无法在GIC UI中创建新分支,但是如果您在另一个终端会话或Web UI中创建分支,则该分支会立即显示在GIC中。 将一些IRC样式的命令修补到GIC中并不需要太多。

聊天了一会儿后,看看您的Git存储库。 由于聊天发生在Git中,因此存储库本身也是聊天日志:


   
   
$ git log --pretty=format:"%p %cn %s"
4387984 Seth Kenlon Hey Chani, did you submit a talk for All Things Open this year?
36369bb Chani No I didn't get a chance. Did you?
[...]

退出GIC

自从Vim出现以来,就没有像GIC那样难以停止的应用程序了。 您会看到,无法停止GIC。 它会继续运行直到被杀死。 准备停止GIC时,请打开另一个终端选项卡或窗口,然后发出以下命令:

 $ kill `pgrep npm` 

GIC是新颖的。 这是一个很好的例子,说明开源生态系统如何鼓励和实现创造力和探索力,并挑战我们从不同角度看待应用程序。 尝试GIC。 也许它将为您提供想法。 至少,与Git度过一个下午是一个很好的借口。

翻译自: https://opensource.com/article/19/4/git-based-chat

移动端仿钉钉聊天 git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值