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