如果我理解正确,您需要一对一(私人)消息.
您需要学习使用PHP进行Socket编程.您可以从学习本教程开始.这有解决了整个问题,因为PHP没有非阻塞IO,正确的线程模型.我建议你把它用于有趣的小项目.
您可以尝试使用PHP-MIO.我还没试过这个,但我猜它可能会扩展.但是再次从Apache(PHP)方面你将遇到同样的问题.但是当从双方使用它时它可以工作......
PS:感到无聊所以我还没有完全测试过这个;)
下面我介绍两种不能扩展的解决方案(原型).一种解决方案使用Redis pubsub.为此,您需要安装(编译)redis.为此你需要一个POSIX OS,虽然有些人把它移植到Windows.您还可以使用免费的redistogo.com实例.Redis解决方案是首选解决方案.我把所有东西放在一个存档中,你可以从这里下载.
我还给出了一个使用命名管道的解决方案.此解决方案不要求您使用Redis,而是此方法需要访问文件系统.我相信这种方法也适用于Windows(您必须将文件名更改为Windows风格).我想有人试试这个:).我不能再测试了,因为很久以前我已经完全切换到POSIX OS(Ubuntu)了.
至少PHP 5.3,最好是POSIX OS,redis.
要使用这两种解决方案,您需要打开两个浏览器(浏览器A/B).我假设您正在使用localhost开发,并且您可以从中访问文件http://localhost/6646733.
http://localhost/6646733/redis?me=somebodyelse&to=alfred就应该更换redis与pipe尝试命名管道时.http://localhost/6646733/redis?me=alfred&to=somebodyelse以下解决方案可扩展.
例如,托管解决方案Pusher可以进行聊天/消息传递,而不会出现缩放噩梦.Pusher甚至慷慨提供免费计划.但请注意,廉价计划不提供SSL,因此可以截获消息.在不使用SSL时,您不应该通过网络发送私人信息.用户/开发人员提供了一个很好的小库来使用PHP的Pusher.这种方法的问题在于你无法控制,但推动者是,但是你再也不必担心任何细节.
我真的很喜欢socket.io,但是当然还有许多其他解决方案,比如龙卷风.您可以使用Redis在PHP和其他解决方案(socket.io)之间进行有效通信.