化石聊天

2021-03-26 20:09:52

截至2.14版本,Fossil支持开发人员聊天室功能。聊天室为内部人提供了anephephemeral讨论场地。设计目标包括:

简单但功能→化石聊天旨在为地理分散的开发人员提供便捷的实时通信机制。化石聊天并非作为IRC,Slack,Discord,Telegram,Google Hoogouts等的替代或竞争对手。

低管理→您可以在秒内激活聊天室,而无需配置配置文件或安装新软件。在现有的服务器设置中,只需为您想要访问聊天室的用户启用C功能。

短暂→聊天消息不会同步到对等存储库,并且在可配置延迟后自动删除它们(默认值:7天)。可以随时删除单个消息或整个对话,而不会影响系统的任何其他部分。

化石聊天是设计用于内部人员的人 - 患有检查内或更高的人。它并非旨在作为随机传递者的通用聚会。化石聊天寻求提供讨论的沟通场所,没有成为项目的永久记录的一部分。对于持久和持久的讨论,使用该论坛。因为对话旨在是短暂的,但是聊天信息是单个存储库的聊天信息。聊天内容不同步。

FOSSIL存储库必须运行作为服务器,以便聊天工作。要激活聊天,只需将C功能添加到授权参与的每个用户。任何可以阅读ChatCan的人也会发布聊天。

设置(" s")和admin(" a")用户始终可以访问聊天,无需" c"能力。共同配置是添加" C"能力"开发人员"那么任何拥有" v"能力WillAlso可以访问聊天。

还有一些设置/ admin / chat的设置,控制聊天的evior,但默认设置是合理的,所以在mostcases中可以忽略这些设置。设置控制事物在储存储存库数据库之前保留聊天消息的时间。

对于具有适当权限的用户,只需浏览到/聊天即可启动聊天会话。 DefaultSkin包括A"聊天"在宽屏幕上的菜单栏上留在聊天特权的宽屏幕上。还有一个"聊天"选项在网站地图页面上,这意味着聊天将在汉堡菜单下出现一个选项,用于许多皮肤。

消息文本逐字传递。没有标记。但是,聊天系统确实尝试识别和标记超链接,如下所示:

任何以&#34开头的词; http://#34;或" https://"假设是超链接并被标记。

解析[...]中的文本,如果是一个有效的超链接目标(根据Fossil Wiki或Markdown理解超链接的方式),那么该文本被标记。请注意,此处只识别出诸如CheckIn Hashes和Wiki页面名称等URL和FOSEIL-INTERNAL构造,而不是构造,例如[URL |标签]或[标签](URL)。

除了将超链接锚标记添加到Looklike超链接的文本的比例之外,还不会对输入文本进行更改。

可以使用页面塔门特的文件选择元素通过聊天发送文件。如果桌面环境系统支持它,则可以拖动文件并删除该元素。文件未经发送 - 可以使用thecancel按钮取消文件的选择,该文件仅在选择文件时出现。按下TheSend按钮时,任何挂起的文本都会与Cheseled文件一起提交。以这种方式发送的图像文件将默认情况下,默认情况下,邮件中出现在消息中,但每个用户可以通过SettingsPopup菜单切换,使得图像显示为可下载的链接.NON-Image文件始终以下载链接出现在消息中。

任何用户都可以通过单击&#34本地删除给定消息;标签"在消息的顶部并单击出现的按钮。诸如仅本地的屏幕,如果PageIS重新加载,则消息将重新出现。发布给定消息或任何管理员用户的用户可以另外选择全局删除来自ChatRecord的消息,该消息不仅删除其自己的浏览器,而且删除所有连接的客户端,下次何时暂停新消息。

您不需要了解化石聊天如何工作以便使用它。但是,许多开发人员更愿意知道他们的工具是如何工作的。这一段是为这些好奇开发人员提供的福利提供的。

/聊天网页下载少量HTMLAND少量的JavaScript来运行聊天会话。 JavaScript使用XMLHTTPRequest(XHR)下载聊天内容,后期内容或删除历史消息。 XHR使用以下Web接事点:

/聊天 - 轮询→将聊天内容下载为JSON。聊天消息按顺序编号。客户端告诉服务器当前包含它最大的聊天消息,服务器发送回后的消息。如果没有后续消息,/聊天轮询页面块直到可用。

化石聊天使用尊贵"挂起"或"长轮询"用于收到新消息的异步通知的技术。这是因为长轮询与CGI和SCGI运行良好,这是设置FOSSIL Server的常用机制.MORE高级通知技术,如服务器发送的事件等高级通知技术特别是WebSockets似乎更合适的聊天系统,但这些技术与CGI不兼容。

/聊天 - 下载→获取与帖子关联的文件内容(一个文件汇率,最大值)。在UI中,可以通过链接访问上载文件并通过内联图像标记访问。

创建表repository.chat(msgid整数主键自动增量,mtime julianday,ltime text,xfrom文本,xmsg文本,fname文本,fmime文本,mdel int,文件blob));

聊天表不会与RepositorySchema中的任何其他表交联。 管理员可以"下降表聊天;" 随时,没有HARM(除了删除所有聊天记录,当然)。 在运行化石时,聊天表删除了verioly。 在服务器端,消息文本完全按照所输入的方式存储。 /聊天 - 轮询页面查询聊天表并构建/聊天PolllDocumentation中描述的AJSON回复。 在转换为JSON之前,消息文本是翻译into html,以便使用赋值为innerhtml来删除文本。 虽然InnerHTML分配通常被认为是不安全的,但它只是不受信任来源的不受信任的内容。 聊天内容GooSthrough Sanitization步骤,消除了将该内容分配给InnerHTML的任何潜在SecurityVulnernative。