1

我需要知道一些关于 IRC 服务器的事情,我无法通过谷歌直接找到(或者不够清楚,我无法确定它是否真的有效)

我在一个更大的社区站点工作,并希望提供页面内聊天。由于让人们也可以通过自己的客户端从外部访问它是一个不错的功能,因此我认为实现 IRC 服务器将是最好的解决方案(可能是专用的,为此我必须自学一些东西)

我计划在 APE 客户端/服务器上包含一个基于 Web 的 IRC 客户端。问题是,我想剥夺用户权限,以禁止 IRC 提供的许多功能:

  • 昵称更改:用户通过页面登录登录,我将使用该密码自动为该用户创建 IRC 身份验证。所以基本上,他会通过一个按钮连接到 IRC 客户端。而且连上之后,他应该根本就不能改昵称了
  • 创建频道:我希望可以创建频道,但不是来自“普通”用户。基本上,我更喜欢设置公共的基本频道,如果用户真的创建了自己的频道,那么该频道应该是私人的并通过邀请(这可能吗?)
  • 私人对话:私人对话应该从全方位的 IRC 客户端中过滤掉,进入我通过 JS 创建的单独的“浏览器窗口”中。我想我只需要过滤来自 IRC 的东西——或者有更好的解决方案吗?
  • 只有“注册”用户才能访问:就像我说的,如果有人在页面上注册,我想为他创建一个 IRC“帐户”。未在页面上注册的用户根本无法访问 IRC 服务器(或被淘汰)。主要是为了避免来自外部的垃圾邮件发送者或机器人。

这些东西可以通过 IRC 解决吗?我已经阅读了一些关于 IRC OP 和服务器的常见问题解答和说明,但我找不到明确的答案 - 似乎每个人都可以做几乎所有事情 - 我想以一种更减少用户可能性的方式配置它。基本上,给用户聊天的可能性,但不是更多。

所以问题基本上是,这个问题如何可能/可解决,或者我是否必须为此找到其他解决方案。

4

1 回答 1

1

看看不同的IRC 服务,例如ChanServ。使用Channel 和 User 模式来设置特定的标志

您很可能会在服务器端执行以下操作:

  • 强制昵称 ( NickServ )
  • 仅允许某些用户类型创建频道
  • 频道创建后允许任何用户加入
  • 频道可以有仅邀请标志+i
  • 私人对话只是给不同用户的私人消息。如果您需要私人对话来拥有多个用户,则需要实现一些私下使用频道的逻辑
  • 创建注册用户应该是可能的,并且可能由像NickServ这样的 IRC 服务强制执行。

考虑使用CGI:IRC。它是浏览器中的聊天客户端,通过网络服务器连接到 IRC。您可以限制用户可以从那里执行的操作,也可以限制它在服务器端。

对不同的 IRCd 做一些研究,看看你是否找到了一个支持你需要的东西。Dancer-IRCd似乎是一个受欢迎的选择,并且包含在 Ubuntuapt-get存储库中,但是我不确定它是否支持您需要的所有功能。


另一种选择是放弃 IRC 的整个想法,并使用WebSocket APIComet实现您自己的聊天客户端。对此也有完整的解决方案。

这方面的例子:

于 2012-06-18T09:12:05.313 回答