基于php的简单聊天系统,基于php swoole扩展写的超简单聊天室

实例图:

49caa95e63cf

Paste_Image.png

服务端 Websocket.php

$ws_server = new swoole_websocket_server('192.168.238.129',9502);

//设置server运行时的参数

$ws_server->set(array(

'daemonize' => true, //是否作为守护进程

'log_file' => __DIR__ .'/logs/web_socket.log'

));

//监听WebSocket连接打开事件

$ws_server->on('open', function ($ws, $request) {

// $ws->push($request->fd, $request->fd.' : '."Hello\n");

});

//监听WebSocket消息事件

$ws_server->on('message', function ($ws, $frame) {

pushMessage($ws,$frame->data,$frame->fd);

});

//监听WebSocket连接关闭事件

$ws_server->on('close', function ($ws, $fd) {

echo date('Y-m-d H:i:s').' 游客ID-'.$fd.' 退出了聊天室'."\r\n";

});

$ws_server->start();

//消息推送

function pushMessage($ws,$data,$fd){

echo date('Y-m-d H:i:s').' 游客ID-'.$fd.':'.$data."\r\n";

foreach($ws->connections as $dd){

$ws->push($dd, $fd.' : '.$data);

}

}

启动:

php websocket.php

重启机制:

先杀死进程,再重新启动

ps -eaf |grep "Websocket.php" | grep -v "grep"| awk '{print $2}'|xargs kill -9

2.客户端 websocket.html

基于php swoole扩展写的超简单聊天室

if(window.WebSocket){

var webSocket = new WebSocket("ws://192.168.238.129:9502");

webSocket.onopen = function (event) {

};

webSocket.onmessage = function (event) {

var content = document.getElementById('content');

content.innerHTML = content.innerHTML.concat('

游客id-'+event.data+'

');

content.scrollTop = content.scrollHeight;

document.getElementById("message").value="";

}

var sendMessage = function(){

var data = document.getElementById('message').value;

webSocket.send(data);

}

}else{

console.log("浏览器不支持WebSocket");

}

p {

margin-left:20px;

height:8px;

line-height:20px;

}

#title {

text-align: center;

margin-bottom: 10px;

}

#room {

width: 600px;

border: 1px solid #ccc;

margin:0 auto;

}

#content {

overflow-y:auto;

height:300px;

border: 1px solid #ccc;

}

#talk {

height:40px;

margin-top:10px

}

#message {

margin-left:10px;

height:25px;

width:450px;

}

#sendButton {

margin-left:20px;

height:30;

width: 70px;

}

基于php swoole扩展写的超简单聊天室

发送

开两个浏览器 访问

49caa95e63cf

QQ图片20170117162053.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值