关于socket通信运行机制的问题(PHP): 20

初步了解下来,socket的通信要有个服务器端和客户端。我想问的是:1/这里的服务器端(一个PHP文件)指的是这个页面是在服务器端运行吗?还是说知识通过这个PHP文件与服... 初步了解下来,socket的通信要有个服务器端和客户端。我想问的是:
1/这里的服务器端(一个PHP文件)指的是这个页面是在服务器端运行吗?还是说知识通过这个PHP文件与服务器建立一个桥梁?
2/如果运行了一次服务器端的PHP页面,是不是只要不关闭使用关闭函数关闭这个页面就会永久的运行?还是说知识我我客户端每发送一次请求才会被激活?
3/关于端口的问题:是不是当服务器端的PHP页面在运行的时候端口就是被一直占用着的,在这种情况下再次运行服务器端的PHP页面是不是就会提醒端口被占用了(令我疑惑的是为什么是明明是运行一个文件,但是却提醒占用端口?)。
展开
 我来答
6丶到没朋友
2016-12-05 · TA获得超过593个赞
知道小有建树答主
回答量:972
采纳率:80%
帮助的人:303万
展开全部
php socket 是以php cli 模式运行的 也就是在服务器上用命令行执行php xxx.php
而你要保持这个文件的长连接 。就是持久监控。
保持长连接也就是死循环
while(true){
这里写socket的一些方法
}
这样他就是会一直执行。设置超时时间为0
这就socket的基本而原理 也是消息队列的基本原理
更多追问追答
追问
我现在写的是想要两个网页之间实现通信,也就是当输入后传到彼此显示的模块中(用AJAX实现,每点击一次发送按钮就传输一次数据,内容的显示区域使用setIntervla()实现无限刷新读取消息)。:如果我按照我的方法执行,那么每次点击按钮必定会执行一次socket的服务端文件。
追答

不是这样的    h5  websocket 里面已经把函数给你封装好了 你只需要实现逻辑就好

var socket = new WebSocket('ws://localhost:8888'); 

// 打开Socket 
socket.onopen = function(event) { 
};
  // 发送消息
  socket.send('内容'); 

  // 监听消息
  socket.onmessage = function(event) { 
    console.log(event); 
  }; 

  // 监听Socket的关闭
  socket.onclose = function(event) { 
    console.log(event); 
  }; 

  // 关闭Socket.... 
  //socket.close() 
这些事websocket的一些方法
//socket.send('这里是要发送的数据');

你只需要在需要的时候在代码里面实现功能即可
 比如说 你要点击按钮发送  和聊天功能一样
 那么只需要 引入jquery文件
 
 $('button').click(function(){
 //这里判断下socket的状态readyState
 socket.send('这里是要发送的数据');
 //剩下的逻辑自己去写
 
 })

而在别人发送数据,你接收到的时候 会自动触发onmessage 函数的  

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式