社区
基础编程
帖子详情
请问各位高手一个问题:关于用php实现通讯
flydragon
2000-09-12 02:37:00
怎么样用php实现实时的通讯?
就是说比如在一个社区中注册用户甲发一段消息给注册用户乙,如果乙现在在线,只要登录了,就能弹出消息窗口,如果不在线,则下次登录的时候能自动弹出?
请做过此类东西的高手指点一二,不胜感激!!!
...全文
163
9
打赏
收藏
请问各位高手一个问题:关于用php实现通讯
怎么样用php实现实时的通讯? 就是说比如在一个社区中注册用户甲发一段消息给注册用户乙,如果乙现在在线,只要登录了,就能弹出消息窗口,如果不在线,则下次登录的时候能自动弹出? 请做过此类东西的高手指点一二,不胜感激!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flydragon
2000-09-20
打赏
举报
回复
感谢各位,不过据说server push是ie不支持的
现在用得很少
我只好用了一种很笨,很耗资源的方式
定时刷新
哎]
没办法
flydragon
2000-09-14
打赏
举报
回复
那在局域网中的用户不能相互发了?客户端能用ServerSocket嘛?
flydragon
2000-09-13
打赏
举报
回复
那这样是不是每张页面都要放上一段程序了?要实现的是两个客户端的通讯阿
gzproger
2000-09-13
打赏
举报
回复
弹出消息,可以在客户端作一个java applet,启动一个socket监听;当服务器端需要
发消息给客户端时,用socket连上,发送就是了。
session失效,看你怎么具体做。原理是超时,如果一个家伙15分钟不动,
就认为他是掉线了。
gzproger
2000-09-13
打赏
举报
回复
首先声明,下面的办法没有考虑proxy和ip转换过的用户的情况;
最基本的要会写java applet,在applet里面用ServerSocket监听:
import java.net.*;
....
ServerSocket server:=new ServerSocket(...参数不太记得了..);
Socket s=null;
while (true)
{
s=server.accept();//阻塞等待连接请求;
processIt(s); //处理请求
}
在processIt方法里面执行一个接受消息和弹出窗口的操作;
这是客户端的基本原理;
服务器端
首先,用户登录时记录他的IP地址;
其次,一个用户发消息给另外一个用户时,取出目标用户的ip地址,然后创建socket连接,
把消息传过去;当然也要保存在数据库里面。
上述办法不能对付有防火强或者ip转换的情况;如果要能对方,客户端就不是启动监听,而是
和服务器建立socket连接:
import java.net.*;
import java.io.*;
.....
Socket s=new Socket(...参数还是忘记了);//和服务器建立连接;
InputStream = s.getInputStream();//类似php了
后面就是读这个stream了,好久不用java不大记得了;
不过这样做要小心,因为每个客户要和服务器有一个持续连接的。
也许有更好的办法。大家一块想想巴。
flydragon
2000-09-13
打赏
举报
回复
你好啊
首先谢谢你的积极帮助,但是我还是不知怎么实现.要是你实现过的话能将代码email给我吗?我的add:chenjielei@yeah.net,非常感谢100点,怎么样?要是没有的话,能说得再详细点吗?
flydragon
2000-09-13
打赏
举报
回复
我现在就是要不刷新就弹出窗口的
你上过www.the9.com吗?那上面的消息就是实时弹出的,不论你在它的那张页面上。
还有一个你可以看看www.playease.com中的千里传音也是有消息马上弹出
还有个问题:关于session失效的问题,鉴于http的无状态,在用户不正常退出的时候怎么从在线名单中删除此用户,做在线统计的时候,统计相对准确的在线人数,你做过社区,这个你应该是妹什么问题吧
gzproger
2000-09-13
打赏
举报
回复
是一个对java applet的引用代码;类似于每页都放一个java script或者meta的自动刷新那样;
你可以写一个msgreceiver.php,然后每页都require("msgreceiver.php");
当一个客户发消息时,服务器帮他转发给另外的客户;
如果希望直接通过tcp/ip在两个客户端直接通讯,通过web应该做不到。除非你要求用户降低
客户端的浏览器的安全设置。
shiyee
2000-09-12
打赏
举报
回复
To flydragon
这个好实现!我做社区做过。建张表,叫消息表,每个用户登进去,做次检查就是了。
浏览器客户端的失时通讯不知道怎么实现?c/s的client端可以用时间间隔控制事件来实现失时
检查事件,而浏览器怎么做?能实现吗?不要那个refresh content=10,在Chinaren上的消息
<a href="http://message.chinaren.com/read.php3"><img src="http://message.chinaren.com/checkmsg.php3" width=60 height=12 border=0></a>
也不能做到实时检查,只有每次登陆或刷新才能检测新消息。
JAVA上百实例源码以及开源项目源代码
5个目标文件,演示Address EJB的
实现
,创建
一个
EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回
一个
经过初始化的上下文,用client的getHome()函数调用Home接口...
JAVA上百实例源码以及开源项目
5个目标文件,演示Address EJB的
实现
,创建
一个
EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回
一个
经过初始化的上下文,用client的getHome()函数调用Home接口...
Vue项目实战+
PHP
接口开发(微信扫码关注
实现
自动登陆)
如何进行代码部署,本地与服务器代码的开发实时同步 九、如何使用composer帮助我们进行第三方依赖包的安装 本课程的设计思路随笔: 从业务层面上来讲,扫码关注公众号,
实现
网站端自动登陆是
一个
非常实用的功能,...
Linux操作系统基础教程
关於
通讯
用的指令.........................................................................................................21 十. 编译器( Compiler ).......................................................
用
php
编写室友
通讯
录_30分钟学会用
PHP
写带数据库的简单
通讯
录第1/3页
引用上篇文章的开场白:我接触
PHP
也不是很久,所以有什么不足的地方,欢迎各位指正,让大家见笑了。这篇小教程的对象是
PHP
初学...没有
PHP
基础知识也没有关系,只要耐心的看,学会它也不会超过
一个
小时的。我写这篇文...
基础编程
21,887
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章