当你需要ChatAI服务但无法魔法或没有海外手机号码时,Chat8就是你的解决方案。我们基于OpenAi开发,所有用户内容都会加密,欢迎使用!点击使用:
https://chat.chat826.com/#/register?bronk_on=375671
C# .net5 WebSocket 应用示例
C# .net5 SuperWebSocket 应用示例
C# Fleck实现websocket
源码
https://gitee.com/zzbbc/samplewebsocketsignalr
1,通道引入 websocket 中间件
app.UseWebSockets();
2,创建websocket连接
[HttpGet("/ws")]
public async Task Get()
{
if (HttpContext.WebSockets.IsWebSocketRequest)
{
//接受websocket客户端连接
var webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync();
//await Echo(webSocket);
await Echo(webSocket, dic);
}
else
{
//不是websocket客户端请求
HttpContext.Response.StatusCode = 400;//
}
}
3,客户端连接成功,接收消息,发送消息,客户端断开
private async Task Echo(WebSocket webSocket, Dictionary<string, WebSocket> dic)
{
var buffer = new byte[1024 * 4];
var result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
var user = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
dic.Add(user, webSocket);
while (!result.CloseStatus.HasValue)
{
var message = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
if (message.Contains("***"))
{
var msgArr = message.Split("***");
var msgDate = msgArr[0];
var msgTo = msgArr[1];
if (dic.ContainsKey(msgTo))
{
var webSocketGit = dic[msgTo];
//向客户端发送消息
await webSocketGit.SendAsync(new ArraySegment<byte>(buffer, 0, buffer.Length), result.MessageType, result.EndOfMessage, CancellationToken.None);
}
else
{
throw new Exception("用户不存在");
}
}
else
{
//向客户端发送消息
await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, buffer.Length), result.MessageType, result.EndOfMessage, CancellationToken.None);
}
//继续接受客户端消息
result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
}
//关闭释放与客户端连接
await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);
}
4 JavaScript
<script type="text/javascript">
let ws = new WebSocket('ws://localhost:5000/ws');//连接的就是api网站的地址
ws.onmessage = function (e) {
//监听消息
console.log(e);
console.log(e.data);
};
ws.onmessage=function(res)
{
console.log(res.data);
}
function add(){
var msg=document.getElementById("msg").value;
var to=document.getElementById("to").value;
ws.send(`${msg}***${to}`);
}
</script>
h5
<div class="text-center">
<input id="msg"/>
<input id="to"/>
<button οnclick="add()">发送数据</button>
</div>