我们来理解下什么是socket

百度百科这样说的:网络上的两个程序通过一个双向的通信连接实现数据的交流,这个连接的一端称为一个socket。

建立网络通信连接至少要一对端口号(socket)。
socket实质是编程接口(API),对TCP/IP的封装,TCP/IP也要供应可供程序员做网络开拓所用的接口,这便是Socket编程接口;HTTP是轿车,供应了封装或者显示数据的详细形式;Socket是发动机,供应了网络通信的能力。

php即时通讯phphtml 即时通信 HTML

实在我在php中的理解便是 :便是别人都弄好了,我们直接调用就行。
PHP 对socket封装了很多方法,文章末端大家可以看看。

先从做事器端提及。
做事器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept壅塞,等待客户端连接。
在这时如果有个客户端初始化一个Socket,然后连接做事器(connect),如果连接成功,这时客户端与做事器真个连接就建立了。
客户端发送数据要求,做事器端吸收要求并处理要求,然后把回应数据发送给客户端,客户端读取数据,末了关闭连接,一次交互结束。

注:做事端运行的时候。
请先把超时时间设置为0;不然默认是30秒,30秒往后就结束,到时候就没法测试了。

之前百度 推举在cmd运行,我的测试过在cmd弗成。
建议在浏览器运行做事端代码
我是windows

里面的socket_方法都是php自带的。
大家看下就懂了。

有些代码是从别人分享的github上获取的。
同时感谢原作者,本来想把地址见告大家的,但是彷佛头条不许可。

直接上代码

做事端代码:

前端页面代码:

分别在不通的浏览器打开该页面。
就涌现效果了。

看了别人的代码,磕磕碰碰终于实现了效果。
这个只实现了谈天室功能群谈天功能。

末了问个,如何实现像QQ一样实现多组用户一对一谈天了,有的大神请见告个感激。

觉得要创建多个谈天室的样子。
带区分的id吗?如何创建?叨教