实现无刷新聊天室的文章(客户端为linux,windows情况的不同选择)
2004-12-12 20:13
447 查看
在Linux下测试server---push成功:
test.php
====================================
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<IMG SRC="server.php" HEIGHT=240 WIDTH=320>
<HEAD>
<?
if (ereg("MSIE",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])) {
echo "<META HTTP-EQUIV=/"Refresh/" CONTENT=/"4;/">/n";
}
?>
</HEAD>
</HEAD>
<BODY>
</BODY>
</HTML>
======================================
server.php
======================================
<?
$file = "./1.jpg";
$sep = "gIrLsKiCkAsSiTsAySsOoNaTsHiRt";
if (ereg(".*MSIE.*",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])){
# If IE, spit out one pic and exit
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header("Content-type: image/jpeg");
header("Content-size: " . filesize($file));
readfile($file);
} else {
# if not IE, give the browser a try
header("Content-Type: multipart/x-mixed-replace; boundary=$sep");
print "--$sep/n";
do {
print "Content-Type: image/jpeg/n/n";
readfile($file);
print "/n--$sep/n";
flush();
$mt = filemtime($file);
do {
sleep (1);
# we won't output the same image twice.
clearstatcache();
}while ($mt == filemtime($file));
}while (1);
}
?>
********************************************************************
看实现的效果:
在相应的目录下放两张图片1.jpg,2.jpg轮回着改变图片的名字可以看到执行页面的
图片会发生变化。且屏暮不会刷新。
附上述成功的基础是在linux下,如果要实现在客户端的系统为windows才好。
+++++++++++++++++++++++++++++++++++++
目前大多用的是客户端的拉技术:实现方法有多种,下面一篇不错的文章:
client.htm
<html><head>
<title>Client</title></head>
<script>
var nowHour=0;
var nowHour=0;
function onIdle()
{
iframeHere.innerHTML=
'<iframe src="server.php"></iframe>';
setTimeout("onIdle();",10000);
}
</script>
<body bgcolor="#008080" onLoad="onIdle();">
<center>下面显示服务器的信息
<br>每十秒一次</center>
<span id=msgHere><center>
正在读取服务器的时间。。。
</center></span>
<span id=iframeHere
style="position:absolute;visibility:hidden">
</span>
</body></html>
===================================
server.php
===================================
<html>
<script>
if(self.parent)
if(self.parent.msgHere)
self.parent.msgHere.innerHTML=
'<center>现在服务器上<br>的时间是'+
<?
$now=getdate();
echo $now["hours"];
?>
+'时'+
<?
echo $now["minutes"];
?>
+'分<br>请调节你的机子的时间</center>';
</script>
</html>
test.php
====================================
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<IMG SRC="server.php" HEIGHT=240 WIDTH=320>
<HEAD>
<?
if (ereg("MSIE",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])) {
echo "<META HTTP-EQUIV=/"Refresh/" CONTENT=/"4;/">/n";
}
?>
</HEAD>
</HEAD>
<BODY>
</BODY>
</HTML>
======================================
server.php
======================================
<?
$file = "./1.jpg";
$sep = "gIrLsKiCkAsSiTsAySsOoNaTsHiRt";
if (ereg(".*MSIE.*",$HTTP_SERVER_VARS["HTTP_USER_AGENT"])){
# If IE, spit out one pic and exit
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header("Content-type: image/jpeg");
header("Content-size: " . filesize($file));
readfile($file);
} else {
# if not IE, give the browser a try
header("Content-Type: multipart/x-mixed-replace; boundary=$sep");
print "--$sep/n";
do {
print "Content-Type: image/jpeg/n/n";
readfile($file);
print "/n--$sep/n";
flush();
$mt = filemtime($file);
do {
sleep (1);
# we won't output the same image twice.
clearstatcache();
}while ($mt == filemtime($file));
}while (1);
}
?>
********************************************************************
看实现的效果:
在相应的目录下放两张图片1.jpg,2.jpg轮回着改变图片的名字可以看到执行页面的
图片会发生变化。且屏暮不会刷新。
附上述成功的基础是在linux下,如果要实现在客户端的系统为windows才好。
+++++++++++++++++++++++++++++++++++++
目前大多用的是客户端的拉技术:实现方法有多种,下面一篇不错的文章:
client.htm
<html><head>
<title>Client</title></head>
<script>
var nowHour=0;
var nowHour=0;
function onIdle()
{
iframeHere.innerHTML=
'<iframe src="server.php"></iframe>';
setTimeout("onIdle();",10000);
}
</script>
<body bgcolor="#008080" onLoad="onIdle();">
<center>下面显示服务器的信息
<br>每十秒一次</center>
<span id=msgHere><center>
正在读取服务器的时间。。。
</center></span>
<span id=iframeHere
style="position:absolute;visibility:hidden">
</span>
</body></html>
===================================
server.php
===================================
<html>
<script>
if(self.parent)
if(self.parent.msgHere)
self.parent.msgHere.innerHTML=
'<center>现在服务器上<br>的时间是'+
<?
$now=getdate();
echo $now["hours"];
?>
+'时'+
<?
echo $now["minutes"];
?>
+'分<br>请调节你的机子的时间</center>';
</script>
</html>
相关文章推荐
- windows ssh客户端putty 简介及用其实现windows与linux的文件传输
- 易宝典文章——玩转Office 365中的Exchange Online服务 之十二 怎样在Exchange Online中实现不同客户端访问
- 基于Linux C 用socket和线程 实现的简易聊天室之客户端
- 在Microsoft Azure和Windows Server with Hyper-V环境中运行Linux客户端操作系统时,Oracle database的认证情况
- linux C++ poll实现的聊天室程序 客户端----服务端
- 虚拟机centos中java代码实现linux(作为服务端),windows(作为客户端)通信
- 如何在无刷新页面的情况下实现客户端回调实例(C#)—MSDN学习笔记
- Python 实现根据不同的程序运行环境存放日志目录,Python实现Linux和windows系统日志的存放
- linux下用线程实现的聊天室 客户端部分
- Linux网络编程(五)——epoll+多线程实现简单的聊天(linux 服务器端 windows客户端)
- 自写聊天室_LinuxC实现(3)——客户端模块化优化及流程图
- 在winsshd 中添加id_rsa.pub 实现Windows 服务器主机自动信任Linux 客户端
- Linux C 网络编程——多线程的聊天室实现(客户端)
- 跨平台(WIndows, Linux, VxWorks) getTickCount实现 本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.li
- Linux与Windows中map类erase方法实现的不同决定使用的不同
- 安装WinSSHD实现Windows下的SSH协议并配置信任Linux客户端,scp使用
- windows ssh客户端putty 简介及用其实现windows与linux的文件传输
- Linux网络编程(四)——多线程实现简单的聊天(linux 服务器端 windows客户端)
- 快速实现配置Windows客户端访问在linux平台上所搭建的Samba服务器&&使用swat软件
- Thrift小试牛刀:实现Windows_C#_客户端与Linux_C++_服务端通信