标签 聊天 下的文章

最好的聊天应用是一个不属于聊天应用的应用。

 title=

请考虑一下,当用户的数据被发布到互联网上,或通过互联网发布时,他们的数据究竟去了哪里。古老的聊天应用是互联网通信领域的一个手工行业,似乎在潮流中起起落落。人们使用聊天应用进行各种形式的对话,大多数人不会想到机器人正在记录和监控他们所说的话,无论是为了有效地定位广告还是只是为了建立一个档案供将来使用。这使得聊天应用特别容易受到不良的隐私做法的影响,但幸运的是,现在有几个开源的、注重隐私的应用,如 SignalRocket.ChatMattermost。我运行过 Mattermost 和 Rocket.Chat,我也在使用 Signal,但我最兴奋的应用是 Delta Chat,这个聊天服务非常方便,甚至不使用聊天服务器。相反,Delta Chat 使用的是你已经使用的最大规模和最多样化的开放信息系统:它使用电子邮件,通过聊天应用发送和接收信息,并以 Autocrypt 的端到端加密为特色。

安装 Delta Chat

Delta Chat 使用标准的电子邮件协议作为它的后端,但对于作为普通用户的你和我来说,它的外观和行为完全像一个聊天应用。也就是说你需要安装一个开源的 Delta Chat 应用。

在 Linux 上,你可以从 Flatpak 包或你的软件库中安装 Delta Chat。

在 macOS 和 Windows 上,从 delta.chat/downloads 下载一个安装程序。

在安卓系统上,你可以从 Play Store 或开源的 F-droid 仓库 安装 Delta Chat。

在 iOS 系统中,从 App Store 安装 Delta Chat。

因为 Delta Chat 使用电子邮件来传递信息,所以如果你不在你的聊天应用中,你也可以在收件箱中收到信息。是的,即使没有安装 Delta Chat,你也可以使用 Delta Chat!

配置 Delta Chat

当你第一次启动 Delta Chat 时,你必须登录到你的电子邮件账户。这往往是 Delta Chat 最难的部分,因为它要求你了解你的电子邮件服务器的详细信息,或者在你的电子邮件提供商的安全设置中创建一个“应用密码”。

如果你使用的是自己的服务器,并且所有配置都是默认的(993 端口用于 IMAP 接收,465 端口用于 SMTP 发出,启用了 SSL/TLS),那么你可以直接输入你的电子邮件地址和密码,然后继续。

 title=

如果你运行自己的服务器,但你有自定义设置,那么点击“ 高级 Advanced ”按钮,输入你的设置。如果你使用一个不寻常的子域来用作你的邮件服务器,或一个自定义端口,或一个复杂的登录和密码配置,你可能需要这样做。

如果你使用的是 Gmail、Fastmail、Yahoo 或类似的电子邮件供应商,那么你必须创建一个应用密码,这样你就可以通过 Delta Chat 而不是网络浏览器登录到你的账户。许多电子邮件供应商限制登录,以避免无休止的机器人和脚本试图用暴力手段进入人们的账户,所以对你的供应商来说,Delta Chat 看起来很像机器人。当你授予 Delta Chat 特殊权限时,你就是在提醒你的电子邮件提供商,从一个远程应用发出大量的短信息是预期的行为。

每个电子邮件提供商都有不同的提供应用密码的方式,但 Fastmail(在我看来)是最简单的:

  1. 进入“ 设置 Settings
  2. 点击“ 密码和安全 Passwords & Security
  3. 在“ 第三方应用 Third-party apps ”的旁边,点击“ 添加 Add ”按钮

验证你的密码,并创建一个新的应用密码。使用你创建的应用密码登录 Delta Chat。

 title=

使用 Delta Chat 聊天

当你克服了登录的障碍,剩下的就很容易了。因为 Delta Chat 只使用电子邮件,你可以通过电子邮件地址而不是通过聊天程序的用户名或电话号码来添加朋友。从技术上讲,你可以在 Delta Chat 上添加任何电子邮件地址。毕竟,它只是一个有特定使用场景的电子邮件应用。不过,告诉你的朋友 Delta Chat 是很有礼貌的,而不是期望他们通过他们的电子邮件客户端与你进行随意的聊天。

无论你是在手机还是在电脑上运行这个应用,其外观都与你所期望的聊天应用完全一样。你可以发起聊天,发送消息,并通过加密文本与朋友闲聊。

 title=

开始聊天

Delta Chat 是去中心化的、完全加密的,并依赖于一个成熟的基础设施。多亏 Delta Chat,你可以选择你和你的联系人之间的服务器,你可以在私下里交流。没有需要安装的复杂的服务器,没有需要维护的硬件。这是一个看似复杂问题的简单解决方案,而且是开源的。我们有充分的理由去尝试它。


via: https://opensource.com/article/22/1/delta-chat-software-privacy-day

作者:Alan Smithee 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

现在,远程协作已作为一项必不可少的能力,让开源实时聊天成为你工具箱中必不可少的一部分吧。

 title=

清晨起床后,我们通常要做的第一件事是检查手机,看看是否有同事和朋友发来的重要信息。无论这是否是一个好习惯,但这种行为早已成为我们日常生活的一部分。

人是理性动物。他可以为任何他想相信的事情想出一个理由。 – 阿纳托尔·法朗士

无论理由是否合理,我们每天都在使用的一系列的通讯工具,例如电子邮件、电话、网络会议工具或社交网络。甚至在 COVID-19 之前,居家办公就已经使这些通信工具成为我们生活中的重要部分。随着疫情出现,居家办公成为新常态,我们交流方式的方方面面正面临着前所未有的改变,这让这些工具变得不可或缺。

为什么需要聊天?

作为全球团队的一部分进行远程工作时,我们必须要有一个相互协作的环境。聊天应用软件在帮助我们保持相互联系中起着至关重要的作用。与电子邮件相比,聊天应用软件可提供与全球各地的同事快速、实时的通信。

选择一款聊天应用软件需要考虑很多因素。为了帮助你选择最适合你的应用软件,在本文中,我将探讨四款开源聊天应用软件,和一个当你需要与同事“面对面”时的开源视频通信工具,然后概述在高效的通讯应用软件中,你应当考虑的一些功能。

四款开源聊天软件

Rocket.Chat

 title=

Rocket.Chat 是一个综合性的通讯平台,其将频道分为公开房间(任何人都可以加入)和私有房间(仅受邀请)。你还可以直接将消息发送给已登录的人员。其能共享文档、链接、照片、视频和 动态图 GIF ,以及进行视频通话,并可以在平台中发送语音信息。

Rocket.Chat 是自由开源软件,但是其独特之处在于其可自托管的聊天系统。你可以将其下载到你的服务器上,无论它是本地服务器或是在公有云上的虚拟专用服务器。

Rocket.Chat 是完全免费,其 源码 可在 Github 获得。许多开源项目都使用 Rocket.Chat 作为他们官方交流平台。该软件在持续不断的发展且不断更新和改进新功能。

我最喜欢 Rocket.Chat 的地方是其能够根据用户需求来进行自定义操作,并且它使用机器学习在用户通讯间进行自动的、实时消息翻译。你也可以下载适用于你移动设备的 Rocket.Chat,以便能随时随地使用。

IRC

 title=

IRC( 互联网中继聊天 Internet Relay Chat )是一款实时、基于文本格式的通信软件。尽管其是最古老的电子通讯形式之一,但在许多知名的软件项目中仍受欢迎。

IRC 频道是单独的聊天室。它可以让你在一个开放的频道中与多人进行聊天或与某人私下一对一聊天。如果频道名称以 # 开头,则可以假定它是官方的聊天室,而以 ## 开头的聊天室通常是非官方的聊天室。

上手 IRC 很容易。你的 IRC 昵称可以让人们找到你,因此它必须是唯一的。但是,你可以完全自主地选择 IRC 客户端。如果你需要比标准 IRC 客户端更多功能的应用程序,则可以使用 Riot.im 连接到 IRC。

考虑到它悠久的历史,你为什么还要继续使用 IRC?出于一个原因是,其仍是我们所依赖的许多自由及开源项目的家园。如果你想参于开源软件开发和社区,可以选择用 IRC。

Zulip

 title=

Zulip 是十分流行的群聊应用程序,它遵循基于话题线索的模式。在 Zulip 中,你可以订阅 stream ,就像在 IRC 频道或 Rocket.Chat 中一样。但是,每个 Zulip 流都会拥有一个唯一的 话题 topic ,该话题可帮助你以后查找对话,因此其更有条理。

与其他平台一样,它支持表情符号、内嵌图片、视频和推特预览。它还支持 LaTeX 来分享数学公式或方程式、支持 Markdown 和语法高亮来分享代码。

Zulip 是跨平台的,并提供 API 用于编写你自己的程序。我特别喜欢 Zulip 的一点是它与 GitHub 的集成整合功能:如果我正在处理某个 议题 issue ,则可以使用 Zulip 的标记回链某个 拉取请求 pull request ID。

Zulip 是开源的(你可以在 GitHub 上访问其 源码)并且免费使用,但它有提供预置支持、LDAP 集成和更多存储类型的付费产品。

Let's Chat

 title=

Let's Chat 是一个面向小型团队的自托管的聊天解决方案。它使用 Node.js 和 MongoDB 编写运行,只需鼠标点击几下即可将其部署到本地服务器或云服务器。它是自由开源软件,可以在 GitHub 上查看其 源码

Let's Chat 与其他开源聊天工具的不同之处在于其企业功能:它支持 LDAP 和 Kerberos) 身份验证。它还具有新用户想要的所有功能:你可以在历史记录中搜索过往消息,并使用 @username 之类的标签来标记人员。

我喜欢 Let's Chat 的地方是它拥有私人的受密码保护的聊天室、发送图片、支持 GIPHY 和代码粘贴。它不断更新,不断增加新功能。

附加:开源视频聊天软件 Jitsi

 title=

有时,文字聊天还不够,你还可能需要与某人面谈。在这种情况下,如果不能选择面对面开会交流,那么视频聊天是最好的选择。Jitsi 是一个完全开源的、支持多平台且兼容 WebRTC 的视频会议工具。

Jitsi 从 Jitsi Desktop 开始,已经发展成为许多 项目,包括 Jitsi Meet、Jitsi Videobridge、jibri 和 libjitsi,并且每个项目都在 GitHub 上开放了 源码

Jitsi 是安全且可扩展的,并支持诸如 联播 simulcast 带宽预估 bandwidth estimation 之类的高级视频路由的概念,还包括音频、录制、屏幕共享和拨入功能等经典功能。你可以来为你的视频聊天室设置密码以保护其不受干扰,并且它还支持通过 YouTube 进行直播。你还可以搭建自己的 Jitsi 服务器,并将其托管在本地或 虚拟专用服务器 virtual private server (例如 Digital Ocean Droplet)上。

我最喜欢 Jitsi 的是它是免费且低门槛的。任何人都可以通过访问 meet.jit.si 来立即召开会议,并且用户无需注册或安装即可轻松参加会议。(但是,注册的话能拥有日程安排功能。)这种入门级低门槛的视频会议服务让 Jitsi 迅速普及。

选择一个聊天应用软件的建议

各种各样的开源聊天应用软件可能让你很难抉择。以下是一些选择一款聊天应用软件的一般准则。

  • 最好具有交互式的界面和简单的导航工具。
  • 最好寻找一种功能强大且能让人们以各种方式使用它的工具。
  • 如果与你所使用的工具有进行集成整合的话,可以重点考虑。一些工具与 GitHub 或 GitLab 以及某些应用程序具有良好的无缝衔接,这将是一个非常有用的功能。
  • 有能托管到云主机的工具将十分方便。
  • 应考虑到聊天服务的安全性。在私人服务器上托管服务的能力对许多组织和个人来说是必要的。
  • 最好选择那些具有丰富的隐私设置,并拥有私人聊天室和公共聊天室的通讯工具。

由于人们比以往任何时候都更加依赖在线服务,因此拥有备用的通讯平台是明智之举。例如,如果一个项目正在使用 Rocket.Chat,则必要之时,它还应具有跳转到 IRC 的能力。由于这些软件在不断更新,你可能会发现自己已经连接到多个渠道,因此集成整合其他应用将变得非常有价值。

在各种可用的开源聊天服务中,你喜欢和使用哪些?这些工具又是如何帮助你进行远程办公?请在评论中分享你的想法。


via: https://opensource.com/article/20/4/open-source-chat

作者:Sudeshna Sur 选题:lujun9972 译者:wyxplus 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用这些简单、经济高效的开源工具构建自己真正的私人聊天和消息解决方案。

互联网提供了大量免费的消息服务。像 WhatsApp 和 Viber 这样的应用已经是我们日常生活的一部分,也是我们与亲朋好友沟通的最常见方式。但是,安全意识的提高,让人们对真正的私密聊天解决方案的需求越来越大。此外,消息类应用在我们的设备中占用了大量空间,因此一个备用聊天渠道可能对于我们与朋友分享媒体、信息和联系人很有作用。

今天,我们将了解如何使用树莓派和 Rocket.Chat 安装一个私人聊天和消息服务器。

什么是 Rocket.Chat?

Rocket.Chat 是一个开源解决方案,它提供了一个增强的聊天服务。它包括媒体共享、屏幕共享和视频/音频呼叫支持等协作工具。

它可以通过浏览器或从所有主要应用商店(Google Play、App Store 等)下载使用。

除了社区版本外,Rocket.Chat 还提供企业版和专业版,包括支持和其他附加功能。

我们需要什么

对于这个项目,我将使用更便宜的树莓派 3A+。树莓派 3B 和 3B+ 以及树莓派 4B 应该也可以用同样的方法。

我也建议使用一块高性能 SD 卡,因为 Rocket.Chat 会给树莓派带来很大的负载。如其他文章中所述,高性能 SD 卡可显著提高 Raspbian 操作系统的性能。

我们将使用 Raspbian 的精简版本,拥有预配置的 WiFi 访问和 SSH 服务,因此不需要键盘或 HDMI 线缆。

分步过程

安装最新版本的 Raspbian Buster Lite 开始。

我们将使用 Snap 简化 Rocket.Chat 安装。通过 SSH 登录并从终端输入:

sudo apt-get update
sudo apt-get upgrade

安装 Snap:

sudo apt-get install snapd

安装 Snap 后,我们需要重启系统使其正常工作:

sudo reboot

再次通过 SSH 登录,并用以下简单的命令安装 Rocket.Chat:

sudo snap install rocketchat-server

从终端安装后,请等待一段时间,让 Rocket.Chat 初始化数据库和服务。休息一下,几分钟后,你应该能够在浏览器中访问 http://<<YOUR_RPI_IP_ADDRESS>>:3000,你应该看到以下内容:

 title=

填写所需的表单就可以了。经过四个简单的设置窗口后,你应该会进入 Rocket.Chat 主页:

 title=

享受吧!

本文最初发表在 peppe8o.com,并获许重新发布。


via: https://opensource.com/article/20/3/raspberry-pi-rocketchat

作者:Giuseppe Cassibba 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

BitlBee 将多个聊天应用集合到一个界面中。在我们的 20 个使用开源提升生产力的系列的第九篇文章中了解如何设置和使用 BitlBee。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

将所有聊天都放到 BitlBee 中

即时消息和聊天已经成为网络世界的主要内容。如果你像我一样,你可能打开五六个不同的应用与你的朋友、同事和其他人交谈。关注所有聊天真的很痛苦。谢天谢地,你可以使用一个应用(好吧,是两个)将这些聊天整个到一个地方。

 title=

BitlBee 是作为服务运行的应用,它可以将标准的 IRC 客户端与大量的消息服务进行桥接。而且,由于它本质上是 IRC 服务器,因此你可以选择很多客户端。

BitlBee 几乎包含在所有 Linux 发行版中。在 Ubuntu 上安装(我选择的 Linux 桌面),类似这样:

sudo apt install bitlbee-libpurple

在其他发行版上,包名可能略有不同,但搜索 “bitlbee” 应该就能看到。

你会注意到我用的 libpurple 版的 BitlBee。这个版本能让我使用 libpurple 即时消息库中提供的所有协议,该库最初是为 Pidgin 开发的。

安装完成后,服务应会自动启动。现在,使用一个 IRC 客户端(图片中为 XChat),我可以连接到端口 6667(标准 IRC 端口)上的服务。

 title=

你将自动连接到控制频道 &bitlbee。此频道对于你是独一无二的,在多用户系统上每个人都有一个自己的。在这里你可以配置该服务。

在控制频道中输入 help,你可以随时获得完整的文档。浏览它,然后使用 register 命令在服务器上注册帐户。

register <mypassword>

现在,你在服务器上所做的任何配置更改(IM 帐户、设置等)都将在输入 save 时保存。每当你连接时,使用 identify <mypassword> 连接到你的帐户并加载这些设置。

 title=

命令 help purple 将显示 libpurple 提供的所有可用协议。例如,我安装了 telegram-purple 包,它增加了连接到 Telegram 的能力。我可以使用 account add 命令将我的电话号码作为帐户添加。

account add telegram +15555555

BitlBee 将显示它已添加帐户。你可以使用 account list 列出你的帐户。因为我只有一个帐户,我可以通过 account 0 on 登录,它会进行 Telegram 登录,列出我所有的朋友和聊天,接下来就能正常聊天了。

但是,对于 Slack 这个最常见的聊天系统之一呢?你可以安装 slack-libpurple 插件,并且对 Slack 执行同样的操作。如果你不愿意编译和安装这些,这可能不适合你。

按照插件页面上的说明操作,安装后重新启动 BitlBee 服务。现在,当你运行 help purple 时,应该会列出 Slack。像其他协议一样添加一个 Slack 帐户。

account add slack [email protected]
account 1 set password my_legcay_API_token
account 1 on

你知道么,你已经连接到 Slack 中,你可以通过 chat add 命令添加你感兴趣的 Slack 频道。比如:

chat add 1 happyparty

将 Slack 频道 happyparty 添加为本地频道 #happyparty。现在可以使用标准 IRC /join 命令访问该频道。这很酷。

BitlBee 和 IRC 客户端帮助我的(大部分)聊天和即时消息保存在一个地方,并减少了我的分心,因为我不再需要查找并切换到任何一个刚刚找我的应用上。


via: https://opensource.com/article/20/1/open-source-chat-tool

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Signal 是一款智能手机上的安全开源聊天应用。它还提供了适用于 Linux、Windows 和 macOS 的独立桌面应用。在本文中,我们来看看它的功能和可用性。

对于关注隐私的人来说,Signal 是 WhatsApp(和 Telegram)的绝佳替代品

Signal App On Linux

Signal 是一款关注隐私的开源应用。像爱德华·斯诺登这样的隐私权倡导者建议使用它。

它可能没有 Telegram 或 WhatsApp 这么多的功能。但是,如果你想在交流时增强隐私,这是一个可靠的开源方案。

你可以在智能手机(iOS/Android)上安装,也可以在 Linux、Windows 和 macOS 上安装。

Signal 的功能

注意: 某些功能是智能手机特有的。你可能无法在桌面应用上看到所有功能。

另请注意,目前,Signal 需要电话号码才能注册。如果你不想公开自己的私人电话号码,则可以使用 Google 语音或类似服务。

正如我已经提到的,这是为增强你的隐私而量身定制的。因此,用户体验可能不是你见过“最佳”的。但是,从隐私/安全角度考虑,我认为这是一个不错的选择。

Signal Features

消失的消息

你可以为对话中的消息设置一个计时器,以便根据它自动删除消息。

本质上,对话中的任何人都可以激活此功能。因此,你可以控制对话中的消息时保留还是消失。

用作默认短信应用

如果你想在短信中使用开源应用,那么只需进入 Signal 的设置,并将其设置为短信和彩信的默认设置。

屏幕安全

有一个巧妙的功能可以阻止应用内截图,它就是“屏幕安全”。

如果你开启它,那么你将无法为应用中的任何对话截图。你可以从应用设置中找到启用或禁用它的选项。

它可能并不是对所有人有用,但你可以尝试一下。

安全数字

如果你想与朋友一起验证加密的安全性,只需点击个人资料并向下滚动找到“查看安全数字”。

你可以扫描验证或者看一眼并标记为已验证。

锁定消息

如果你使用了锁(密码/指纹)来保护应用,那么即使你的设备已解锁,你也无法在通知中看到消息。

因此,当 Signal 处于锁定状态收到通知时,你会注意到通知的内容为 “Locked Message”,这对于注重隐私的用户来说是一个加分项。

其它功能

如你所期待的聊天应用,你可以使用几个标签,并且可以根据需要创建一个组。但是,你无法管理你的组,你只能添加成员和更改群头像。

此外,Signal 还为其应用支持生物识别。

在 Ubuntu/Linux 上安装 Signal

不幸的是,你无法在你的 Linux 发行版上找到 .deb 或者 .AppImage。因此,你需要根据官方安装说明在终端上安装。

在终端中输入以下内容:

curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -
echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list
sudo apt update && sudo apt install signal-desktop

只需在终端中一个接一个地复制并粘贴命令。

Download Signal for Other Devices

我对 Signal 的想法

我已经使用 Signal 有几年了,它的功能已经得到了改善。但是,我仍然认为可以改善用户体验。

在隐私方面,(在我看来)这绝对是我们已有软件的一个很好的替代方案。你可以尝试一下,看看它的使用效果如何。

如果你想尝试一下它,也可以看看它的 GitHub 页面以获取最新的开发和 beta 版本。

与 WhatsApp 甚至 Linux 上的 Telegram 相比,Signal 可能不是流行的聊天应用。但是,你可以自己尝试一下,并鼓励你的朋友使用它。

你尝试过了吗?在下面的评论中,让我知道你对 “Signal” 的看法。


via: https://itsfoss.com/signal-messaging-app/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

GIC 是一个聊天应用程序的原型,展示了一种使用 Git 的新方法。

Git 是一个少有的能将如此多的现代计算封装到一个程序之中的应用程序,它可以用作许多其他应用程序的计算引擎。虽然它以跟踪软件开发中的源代码更改而闻名,但它还有许多其他用途,可以让你的生活更轻松、更有条理。在这个 Git 系列中,我们将分享七种鲜为人知的使用 Git 的方法。

今天我们来看看 GIC,它是一个基于 Git 的聊天应用。

初识 GIC

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

GIC 并没有打算用于生产用途。这纯粹是一种编程练习,但它证明了开源技术的灵活性。令人惊讶的是,除了 Node 库和 Git 本身,该客户端只包含 300 行代码。这是这个聊天客户端和开源所反映出来的最好的地方之一:建立在现有工作基础上的能力。眼见为实,你应该自己亲自来了解一下 GIC。

架设起来

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

如果你自己托管,请创建一个中心化的裸存储库。聊天中的每个用户必须在裸存储库所在的服务器上拥有一个帐户。你可以使用如 GitoliteGitea 这样的 Git 托管软件创建特定于 Git 的帐户,或者你可以在服务器上为他们提供个人用户帐户,可以使用 git-shell 来限制他们只能访问 Git。

自托管实例的性能最好。无论你是自己托管还是使用托管服务,你创建的 Git 存储库都必须具有一个活跃分支,否则 GIC 将无法在用户聊天时进行提交,因为没有 Git HEAD。确保分支初始化和活跃的最简单方法是在创建存储库时提交 README 或许可证文件。如果你没有这样做,你可以在事后创建并提交一个:

$ 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

等待 Node 模块下载并安装。

配置 GIC

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

module.exports = {
  gitRepo: '[email protected]:/home/gitchat/chatdemo.git',
  messageCheckInterval: 500,
  branchesCheckInterval: 5000
};

在尝试 GIC 之前测试你与 Git 存储库的连接,以确保你的配置是正确的:

$ git clone --quiet [email protected]:/home/gitchat/chatdemo.git > /dev/null

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

用 Git 聊天

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

$ npm start

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

 title=

基于 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 度过一个下午。


via: https://opensource.com/article/19/4/git-based-chat

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出