fleck 客户端_Fleck学习笔记「建议收藏」

fleck 客户端_Fleck学习笔记「建议收藏」usingFleck;usingNewtonsoft.Json;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;

fleck 客户端_Fleck学习笔记「建议收藏」

usingFleck;usingNewtonsoft.Json;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;namespaceWebSocketService.App_Start

{public classFleckHelper

{private static List allSockets = new List();private static Dictionary socketDic = new Dictionary();///

///WebSocket初始化///

public static voidWebSocketInit()

{var server = new WebSocketServer(“ws://0.0.0.0:8181”);//此处端口随意指定,但是不能被占用

server.Start(socket =>{

socket.OnOpen= () =>{//Console.WriteLine(“Open!”);//allSockets.Add(socket);//socketDic.Add(socket.ConnectionInfo.Id.ToString(), socket);//此处想要存储指定的key值,但是无法接收指定参数,仅供测试玩

var key = socket.ConnectionInfo.Path.Substring(1);if (!socketDic.Keys.Contains(key))

{

socketDic.Add(key, socket);//此处想要存储指定的key值,但是无法接收指定参数,仅供测试玩

}else{if (socketDic[key] != null)

{

socketDic[key].Close();

}

socketDic[key]=socket;

}

};

socket.OnClose= () =>{//Console.WriteLine(“Close!”);//allSockets.Remove(socket);//socketDic.Remove(socket.ConnectionInfo.Id.ToString());//此处想要删除指定的key值,但是无法接收指定参数,仅供测试玩

var key = socket.ConnectionInfo.Path.Substring(1);

socketDic.Remove(key);//此处想要删除指定的key值,但是无法接收指定参数,仅供测试玩

};

socket.OnMessage= message =>{//Console.WriteLine(message);//allSockets.ToList().ForEach(s => s.Send(“Echo: ” + message));

};

});

}///

///消息发送///

/// 自定义json字符串

public static void Send(stringmessage)

{try{var msgInfo = JsonConvert.DeserializeObject(message);var toUser =msgInfo.ToUser;var msg =msgInfo.Msg;if (!string.IsNullOrWhiteSpace(toUser))//已指定接收人

{if (socketDic.Keys.Contains(toUser))//确认是否有接收人的WebSocket

{

socketDic[toUser].Send(msg);//发送给指定接收人

}

}else{

socketDic.Values.ToList().ForEach(p=> p.Send(msg));//未指定接收人全部发送

}

}catch(Exception)

{throw;

}

}///

///自定义消息类///

public classMessageInfo

{///

///接收人///

public string ToUser { get; set; }///

///发送信息///

public string Msg { get; set; }

}

}

}

今天的文章fleck 客户端_Fleck学习笔记「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71382.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注