热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP聊天室_WebSocket技术实战-PHP源码

PHP聊天室以前做时都是通过ajax与PHP来实现的,今天我们就一起来看一个PHP聊天室WebSocket技术实战例子。
PHP聊天室以前做时都是通过ajax与PHP来实现的,今天我们就一起来看一个PHP聊天室WebSocket技术实战例子。

最近在研究聊天室技术,因为我是做php的,肯定想要从php入手,偶的一个聊天室,下载地址:

http://pan.baidu.com/s/1dDWsbip

密码:i2qz

正在修行当中,准备以此为基础做一款php的聊天室系统出来,php的东西比较容易看懂,但是我遇到的一个问题是前台文件如何发送信息到后台服务器呢,后来研究发现是用的js 的WebSocket技术,如下是常用js WebSocket 常用操作:

var socket = new WebSocket('ws://localhost:8080');
// 打开Socket
socket.Onopen= function(event) {
}
// 发送一个初始化消息
socket.send('I am the client and I\'m listening!');
// 监听消息
socket.Onmessage= function(event) {
console.log('Client received a message',event);
};
// 监听Socket的关闭
socket.Onclose= function(event) {
console.log('Client notified socket has closed',event);
};
// 关闭Socket....
socket.close()
socket.Onerror= function(evt){console.log(“WebSocketError!”);};

这里给大家下载的版本是window版本的php聊天室,需要大家配置如何cmd运行php的环境,
很简单,网上有很多教程,搜搜即可,我只说我遇到的一点疑惑,就是按照教程配置完环境变量path之后,按道理来说,应该是可以cmd运行php了,但是就是不行,过了一天,发现居然能用了,后来才想明白是,配置完后,需要重启电脑才能生效的缘故。

以前也用过 node.js 开发过一些小功能,觉得这里的php技术和node.js 功能都是类似的,都是不需要运行环境,自身就是运行环境的一种方式,聊天室技术,其实我觉得最大的一个突破点是,服务器可以主动给用户发送信息,以控制用户端的浏览器,我觉得这一点的意义很大。这样不用再用ajax不停的访问服务器来获得最新的技术了,极大的减小了服务器的压力,而且提高了用户体验,但是发现用此技术还是没有很好的普遍使用起来,所以以后会陆续发一些此方面的相关视频教程出来,童鞋们可以互相学习交流。
下载到源码之后直接双击目录下面的 start_for_win.bat 文件 即可启动 聊天室服务,
然后访问:http://127.0.0.1:55151/ 即可进入聊天室
当然也可以用如下命令控制服务:
启动
以debug方式启动
php /var/www/workerman/start.php start

以daemon方式启动

php /var/www/workerman/start.php start -d
停止
php /var/www/workerman/start.php stop
重启
php /var/www/workerman/start.php restart
平滑重启
php /var/www/workerman/start.php reload
查看状态
php /var/www/workerman/start.php status


我只说重要的一点,debug方式启动,会在你关闭cmd窗口的时候 聊天室服务就关闭了,而以以daemon方式启动,就算cmd窗口关闭了,聊天室服务还是运行的


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
  • 【系列二】长连接,短连接及WebSocket介绍(含http1.0,1.1,2.0相关)
    前言上一节讲了长轮询和轮询及其实现,这节讲一讲长连接、短连接及webSocket,在讲这些之前,我们先来普及一下http相关的一 ... [详细]
  • DAO设计模式(九)_1.设计分层初步 ... [详细]
  • Mosquitto常用命令
    1mosquitto服务器的搭建服务器这里使用了阿里云的服务器,mosquitto默认需要1883的TCP入端口。需要在安全策略里设置一下。端口当然也可以选其他端口进 ... [详细]
  • launch.json配置php,launchjson有什么用
    本文目录一览:1、VSCodelaunch.json配置详解 ... [详细]
  • 为了让用户体验更好,页面前端往往是通过ajax来进行数据处理;由于浏览器的设计原因每个域名下的连接有 ... [详细]
  • webui之常用js操作(webui界面是什么)
    本文目录一览:1、web前端开发需要掌握的几个必备技术 ... [详细]
  • ①安装node.js②按照下面命令行执行node安装参照网址:https:www.cnblogs.compearl07p6247389.htmlwebpack讲解安 ... [详细]
author-avatar
手机用户2502924641
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有