workmen,swoole单人,多人聊天(简述)

分客户端和服务端

ws+workmen,ws+swoole

前端创建连接

< input id= "qwe" name= "qw" value= "123" >
< button onclick= "clickhh()" >发送信息 </ button >
< script >

// 假设服务端ip为127.0.0.1
ws = new WebSocket( "ws://127.0.0.1:2000");
ws. onopen = function() {
alert( "连接成功");
};
function clickhh(){
console. log( 11111111)
var a= document. getElementById( 'qwe');
ws. send( a. value);
alert( "给服务端发送一个字符串:" + a. value);

}
ws. onmessage = function( e) {
alert( "收到服务端的消息:" + e. data);
};
< / script >

ws.onopen打开连接 ,ws.send发送消息,ws.onmessage监控该端口发过来的所有消息

workmen和swoole都有创建websocket的服务端,同时创建work进程数,可获取当前连接的IP,同时生成唯一的连接标识ID,

有connect,message,close三个方法注册,connect只是检测连接,可在其设置监听有多少人连接,message监听客户端的发来消息并回调

单人或多人聊天

需要一个room参数,每当有人连接不同的room,对应的room在服务端加入连接的标识ID,离开房间就删除,即时连接的room可用redis等去保存,好友模型的存在数据库。

在接收到消息的时候,遍历实例的连接并回调发送信息给对应房间的标识id(好友的可先判断是否在线)

离线消息保存数据库




猜你喜欢

转载自blog.csdn.net/qq_38738033/article/details/80972880