日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

websocket在.net4.5中实现的简单demo

發布時間:2025/7/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 websocket在.net4.5中实现的简单demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下代碼環境要求:win8或win10, .net4.5+IIS8

win7上是IIS7,win7上.net本身不直接支持websocket, win7可以用superwebsocket, 或自己根據協議用TCPListener實現

?

handler代碼:

using System; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Web; using System.Web.WebSockets;namespace websocket {/// <summary>/// Handler1 的摘要說明/// </summary>public class Handler1 : IHttpHandler{public void ProcessRequest(HttpContext context){if (context.IsWebSocketRequest){context.AcceptWebSocketRequest(ProcessChat);} }private async Task ProcessChat(AspNetWebSocketContext context){WebSocket socket = context.WebSocket;while (true) {if (socket.State == WebSocketState.Open){ArraySegment<byte> buffer = new ArraySegment<byte>(new byte[2048]);WebSocketReceiveResult result = await socket.ReceiveAsync(buffer, CancellationToken.None);string userMsg = Encoding.UTF8.GetString(buffer.Array, 0, result.Count);userMsg = "你發送了:" + userMsg + "" + DateTime.Now.ToLongTimeString();buffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(userMsg));await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);}else{break;}}}public bool IsReusable{get{return false;}}} }

前臺代碼:

<head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="jquery-2.0.3.min.js"></script><script>var ws;$().ready(function (){$('#conn').click(function (){ws = new WebSocket('ws://' + window.location.hostname+':'+window.location.port + '/Handler1.ashx');$('#tips').text('正在連接');ws.onopen = function (){$('#tips').text('已經連接');}ws.onmessage = function (evt){$('#tips').text(evt.data);}ws.onerror = function (evt){$('#tips').text(JSON.stringify(evt));}ws.onclose = function (){$('#tips').text('已經關閉');}});$('#close').click(function (){ws.close();});$('#send').click(function (){if (ws.readyState == WebSocket.OPEN) {ws.send($('#content').val());}else {$('#tips').text('連接已經關閉');}});});</script> </head> <body><form id="form1" runat="server"><div><input id="conn" type="button" value="連接" /><input id="close" type="button" value="關閉"/><span id="tips"></span><input id="content" type="text" /><input id="send" type="button" value="發送"/></div></form> </body>

web.config:

<system.web><httpRuntime targetFramework="4.5"/></system.web>

?

轉載于:https://www.cnblogs.com/langu/p/3485676.html

總結

以上是生活随笔為你收集整理的websocket在.net4.5中实现的简单demo的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。