首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP、IRC和Shell

PHP、IRC和Shell
EN

Stack Overflow用户
提问于 2010-08-13 12:05:27
回答 1查看 715关注 0票数 1

我正在使用一个大约有100个用户的封闭社区站点(基于PHP),我们实现的功能之一是一个ajax shoutbox,当用户登录时,它在站点首页上充当“聊天室”。开发团队正在使用私有的irc服务器进行协作,在一个渠道中,我们正在运行一个quizbot。我们想出了一个想法,尝试制作一个通过我们的网站连接到irc的web界面,这样我们网站的所有(不懂技术的)用户都可以参加我们的irc测验。

现在,我不是IRC专家,但是我研究了一些PHP-IRC教程,在我看来,为了连接到IRC,PHP需要保持一个开放的连接。这意味着我们需要做一个comet风格的技巧,让PHP脚本在不超时的情况下执行。然而,这意味着如果用户离开页面或者关闭标签,我们就会失去对php执行的控制。如果发生这种情况,我们可能会想出一种方法来停止连接,但即便如此,如果用户导航回到聊天室,也必须重新连接到irc。

我们想要实现的是一种让用户永久连接到irc服务器的方法,即使他们没有登录到该站点。开发团队在我们的一台服务器上都有shell帐户,我们使用screen和irssi来保持连接。我认为通过一个总是连接到irc的shell帐户,php脚本连接到irc应该是可能的。由于我们的用户数量有限,为所有用户设置shell帐户不是问题,但我还没有找出缺失的环节--以某种方式允许php访问的命令行irc客户端。

有人有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-13 12:20:44

一种选择是运行一个BNC,这基本上是一个代理,它将维护与IRC服务器的连接,您的PHP脚本可以在需要时连接到它。您需要设置一种方法来识别用户与BNC软件的PHP会话,设置会话超时等,所有这些都取决于您正在使用的特定软件及其可用选项。

或者,用Python或其他语言编写一个特殊用途的代理来维护PHP会话的IRC连接列表也不难。

您也可能不希望每个PHP会话都有一个IRC连接,IRC通道上的单个持久bot连接可以很容易地在每条消息中包含一个用户名,以标识发送该消息的PHP用户。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3473821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档