首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

php+javascript+websocket推送消息

功能需求:通过设置一个websocket服务端与客户端连接,增加一个后端接口,当接口触发时,推送消息到客户端 客户端JS通过new WebSocket时,会在服务端完成握手。而php接口通过socket_create、socket_connect连接,不会完成握手,也不需要。所以通过传递参数 from 来判断是从客户端还是从接口传来的消息 PHP服务端代码:server.php <?php class socketServer { const LISTEN_SOCKET_NUM = 9; const LOG_PATH = "./log/"; //日志 private $_ip = "127.0.0.1"; //ip private $_port = 8080; //端口 要和前端创建WebSocket连接时的端口号一致 private $_socketPool =...
类别:网页编程 - PHP技术    查看:163    更新:2023-07-23

【PHP】WebSocket详细教程:接收数据解包及发送数据包装

(一)WebSocket数据的收发协议 首先,对于客户端向服务器发送数据,都是以数据帧形式传输,下面给出数据帧格式 0                   1                   2                   3   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  +-+-+-+-+-------+-+-------------+-------------------------------+  |F|R|R|R| opcode|M| Payload len |    Extended payload length    |  |I|S|S|S|  (4)  |A| &nbs...
类别:网页编程 - PHP技术    查看:163    更新:2023-07-23

【PHP】WebSocket:建立连接

(一)什么是WebSocket?   WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 (二)WebSocket的作用? WebSock其实在平常使用,我们是时常见到的,用于实时通讯,例如我们常用的实时聊天、服务端向客户端消息推送、也可以实现踢用户下线功能。实时弹幕功能等等。 (三)...
类别:网页编程 - PHP技术    查看:146    更新:2023-07-23

前端websocket与php后台连接

HTTP协议的特性:属于“请求-响应”模型,只有客户端发起了请求消息,服务器才能给出响应消息,没有请求,就没有响应;一个请求消息,服务器只能返回一个响应消息。有些特殊应用场景中,如“在线股票”、“聊天室”等,需要模拟呈现出“客户端不发请求,服务器也在不停的给出响应”效果,若使用HTTP协议,只能使用“AJAX+定时器”来近似的实现——心跳请求,问题:心跳过慢则信息的实效性差,心跳过快则服务器压力太大! WebSocket协议的特性:属于“广播-收听”模型,只要客户端连接到服务器上,就不再断开(永久连接),一方可以不停的给对方发消息,...
类别:网页编程 - JavaScript    查看:145    更新:2023-07-21

WebSocket移动端锁屏以及退到后台重连机制

手机锁屏以及退出后台webscoket会断开:js在手机熄屏后会中断,在唤醒之后js会继续执行。所以设置在js中的定时发送心跳包的功能在手机熄屏后就没法执行了。熄屏时间过长,这个时候链接就会被服务端强制断开,并且大部分手机在熄屏时,websocket连接就已经断开了。 解决办法: 使用H5提供的页面隐藏/显示API document.addEventListener('visibilitychange',function() { if(document.visibilityState == 'hidden') { //记录页面隐藏时间 let hiddenTime = new Date().getTime() } else { let visibleTime = new Date().getTime(); //页面再次可见的时间-隐藏时间>10S,重连 if((visibleTime - hidden...
类别:网页编程 - JavaScript    查看:152    更新:2023-07-15

HTML5 WebSocket初步认识

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客...
类别:网页编程 - JavaScript    查看:155    更新:2023-07-11

基于GPRS的SOCKET通信的应用研究

引 言  GPRS(General Packet Radio Service)是通用分组无线业务的简称,是一种以全球手机系统(GSM)为基础的数据传输技术\[1\]。GPRS网不但具有覆盖范围广、数据传输速度快、通信质量高、永远在线和按流量计费等优点,而且其本身就是一个分组型数据网,支持TCP/IP协议,无需经过PSTN(公用电话交换网)等网络的转接,可直接与Internet网互通。因此GPRS业务在无线上网、环境监测、交通监控、移动办公等行业中具有无可比拟的性价比优势。   在网络设置中有HTTP、SOCKET等类型。SOCKET是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,它定义两台计算机间进行通信的规范(也是...
类别:网络技术 - 无线技术    查看:134    更新:2014-08-11

PHP用socket发送数据

function post($host,$path,$data){      $fp = fsockopen($host,80,$errno, $errstr,30);      fputs($fp,"POST $path HTTP/1.1rn");      fputs($fp,"Host: $hostrn");      fputs($fp,"Content-type: application/x-www-form-urlencodedrn");      fputs($fp,"Content-length: " . strlen($data) . "rn");      fputs($fp, "User-Agent: MSIErn");      fp...
类别:网页编程 - PHP技术    查看:98    更新:2014-05-19

J2ME中使用Socket开发联网程序

在J2ME中基于UDP协议编程一文中介绍了如何使用Datagram和DatagramConnection来开发应用程序,本文将主要讲述在MIDP2.0中使用ServerSocketConnection和SocketConnection来开发联网应用程序。TCP协议是可以保证传输的质量的,这也是他和UDP的一大区别。由于以上谈到的四个类都属于GCF,他们在程序编写方面也非常相似,通常我们在Server端的某个端口监听,当客户端连接服务器的时候,则可以得到一个SocketConnection的实例。通过两端的SocketConnection则可以实现C/S结构的通信了。   首先看一下,ServerSocketConnection类,它的一个非常重要的方法就是acceptAndOpen()方法,这个方法返回一个SocketCon...
类别:程序开发 - JAVA    查看:128    更新:2014-05-16

Java多线程Socket操作猜数游戏样例

1 服务器端程序,接受连接并处理客户端的请求ServerApp.javapackage test; import java.io.*; import java.net.*; /** *//*** 服务器端程序* * @author luxuan310,修正赵学庆。* */public class ServerApp ...{static final int PORT = 9000; private ServerSocket serverSocket; private Socket socket; private BufferedReader netIn; private PrintWriter netOut; public ServerApp() throws IOException ...{serverSocket = new ServerSocket(PORT); System.out.println("server start"); while (true) ...{// 等待连接socket = serverSocket.accept(); ServerThread st = new ServerThread(...
类别:程序开发 - JAVA    查看:134    更新:2014-05-15

完善的java socket server程序

package com.davidflanagan.examples.net; import java.io.*; import java.net.*; import java.util.*; /** * This class is a generic framework for a flexible, multi-threaded server. * It listens on any number of specified ports, and, when it receives a * connection on a port, passes input and output streams to a specified Service * object which provides the actual service. It can limit the number of * concurrent connections, and logs activity to a specified stream. **/ public class Server { /** * A main() method for running the server as a standalone program. The * command-line arguments to t...
类别:程序开发 - JAVA    查看:129    更新:2014-05-14

用Socket发送电子邮件(利用需要验证的SMTP服务器)

* 名称:用Socket发送电子邮件 * 描述:本类实现了直接使用需要验证的SMTP服务器直接发送邮件,参考文章《用Socket发送电子邮件》作者:limodou * 此文章比较早,他是用不用验证SMTP服务器发送邮件,现在基本上SMTP服务器都需要验证了,所以这个文章里的类 意义也不是很大!同时参考了[RFC 1869]和PHP手册!!和上文还有不同的是我用的不是fsockopen()函数 具体你自己看吧!!我刚刚测试通过了,很爽!! 其实把这个类再改写一下就可以直接发送带附件的邮件了,期待。。。我过几天给大家写出来! 我刚刚调试通过,如果你不恶意去捉弄这个程序,他还是很听话的,过些日子我会对他完善加上发送附件的功能!! 即使你的虚拟主机...
类别:网页编程 - PHP技术    查看:113    更新:2014-05-05

用Socket发送电子邮件

  在前面我曾经写过一篇文章,介绍了如何利用socket编程来发送邮件,以解决web服务器不支持mail()函数的问题。经过我的测试也是可以使用的。但目前众多的免费邮件提供商(从263开始,163,新浪网也快开始了)均在smtp功能上增加了认证功能,使得原邮件发送类无法使用。在经过对相应smtp后续rfc的学习之后,经过了多次的试验,我终于试验成功了。于是怀着急迫的心情向大家介绍。 SMTP 认证功能介绍   此处不想向你详细介绍SMTP认证功能,因为我也说不清楚,详细的请参考[RFC 2554]规范。SMTP的认证功能主要是增加了AUTH命令。AUTH命令有多种用法,而且有多种认证机制。AUTH支持的认证机制主要有LOGIN,CRA...
类别:网页编程 - PHP技术    查看:95    更新:2014-05-05