最新消息:

php+html 即时通讯

PHP xiaoxiaopao 146浏览 0评论

今天公司有个项目需要个即时聊天的功能,前几天刚好自己写了一个测试过,好用,只不过用的是第三方的api。这次老大要求自己手写。可把我想的。

我们来了解下什么是socket:

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

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

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

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

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

之前百度 推荐在cmd运行,我的测试过在cmd不行。建议在浏览器运行服务端代码。我是windows

php+html 即时通讯

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

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

直接上代码

服务端代码:

php+html 即时通讯

php+html 即时通讯

php+html 即时通讯

php+html 即时通讯

前端页面代码:

php+html 即时通讯

php+html 即时通讯

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

php+html 即时通讯

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

最后问个,如何实现像QQ一样实现多组用户一对一聊天了,有的大神请告诉个谢谢。

感觉要创建多个聊天室的样子。带区分的id吗?如何创建?请问

转载请注明:PHP学习 » php+html 即时通讯

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址