TCP Audio Streamer and Player (Voice Chat over IP)
2024年4月18日 星期四
Fleck開發的多人網頁版即時聊天室
Asp.Net Mvc基於Fleck開發的多人網頁版即時聊天室
1、最簡單、最常用的調用方法:(ws://172.10.3.4:8111改成您的伺服器本地IP和埠)
//控制台代碼
var server = new WebSocketServer("ws://172.10.3.4:8111");
server.Start(socket =>
{
socket.OnOpen = () => Console.WriteLine("產生連接處理");
socket.OnClose = () => Console.WriteLine("連接斷開處理");
socket.OnMessage = (message) => {
//1、此方法用於接收客戶端發送來的消息
//2、可以做一些自己的操作,例如存入資料庫
//3、為了響應客戶端,一般會使用下麵的send函數,返迴響應結果。
socket.Send(message);
}
});
2、Fleck本身只負責幫你單線聯繫。也就是客戶端A和伺服器建立連接後,會產生一個IWebSocketConnection,也就是上面代碼中socket變數的類型,它包含了接收方法、發送方法,但是都僅限於單一連接內。至於客戶端A想發送消息給客戶端B、C、D亦或者想群發,不好意思Fleck本身不Care。。。當然了那並不是這個功能就不能實現了,只是要開發者自己去把每一個IWebSocketConnection存儲起來,並管理他們的生存周期,通過自己的代碼去實現客戶端A給B發信息或者群發。
3、Fleck不需要額外的容器或進程來運行,它隨著IIS網站運行,也就是在w3wp.exe。至於它是怎麼運行的,目前我還沒有去看源碼,後期有時間再瞧瞧。
三、聊天室源碼位置
1、GitHub:https://github.com/DisSunRestart2020/DisSunChat
2024年4月6日 星期六
ASP.NET內抓取網址的方式一覽表(Request)
Request.ApplicationPath /
Request.Url.Host my.url.com
Request.Url.Port 8080
Request.Url.Scheme https
Request.Url.Authority my.url.com:8080
Request.Path /Detail/Page/List.aspx/showmore
Request.Url.LocalPath /Detail/Page/List.aspx/showmore
Request.PathInfo /showmore
Request.Url.Query ?mid=20
Request.CurrentExecutionFilePath /Detail/Page/List.aspx
Request.FilePath /Detail/Page/List.aspx
Request.RawUrl /Detail/Page/List.aspx/showmore?mid=20
Request.Url.PathAndQuery /Detail/Page/List.aspx/showmore?mid=20
Request.Url.AbsoluteUri https://my.url.com:8080/Detail/Page/List.aspx/showmore?mid=20
Request.Url.AbsolutePath /Detail/Page/List.aspx/showmore
-----------
Request.ApplicationPath
//output:/
Request.PhysicalPath
//output:磁碟機代號:\父目錄\子目錄\Default3.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath)
//output:磁碟機代號:\父目錄\子目錄
Request.PhysicalApplicationPath
//output:磁碟機代號:\父目錄\子目錄\
System.IO.Path.GetFileName(Request.PhysicalPath)
//output:Default3.aspx
Request.CurrentExecutionFilePath
//output:/Default3.aspx
Request.FilePath
//output:/Default3.aspx
Request.Path
//output:/Default3.aspx
Request.RawUrl
//output:/Default3.aspx?id=1019&uu=77
Request.Url.AbsolutePath
//output:/Default3.aspx
Request.Url.AbsoluteUri
//output:http://demo.tc/Default3.aspx?id=1019(這是上一頁的網址)
Request.Url.Scheme
//output:http
Request.Url.Host
//output:demo.tc
Request.Url.Port
//output:80
Request.Url.Authority
//output:demo.tc
Request.Url.LocalPath
//output:/Default3.aspx
Request.PathInfo
//output:
Request.Url.PathAndQuery
//output:/Default3.aspx?id=1019&uu=77
Request.Url.Query
//output:?id=1019&uu=77
Request.Url.Fragment
//output:
Request.Url.Segments[0]
//output:/
Request.Url.Segments[1]
//output:Default3.aspx
2024年4月5日 星期五
bootstrap modal submit form
Should be pretty simple. Just give your form an id
Copy
<form id="the-form" method="POST" action="{{ route('sms.store') }}">
Give the submit button an id
Copy
<button id="the-submit" type="submit" class="btn btn-primary">Save changes</button>
Then use jquery (since you're using bootstrap) to submit the form when the submit button is clicked.
Copy
$(function() {
$('#the-submit').on('click', function(e) {
$('#the-form').submit();
});
});
2024年4月2日 星期二
民國年轉換
民國年轉換
使用DotNet TaiwanCalendar類別轉換民國年,只要簡單的將西元年日期做為參數傳入,即可取得民國年的相關數值,例如,年/月/日…,如下:
System.Globalization.TaiwanCalendar tc = new System.Globalization.TaiwanCalendar();
DateTime d = DateTime.Now;
string salesDate = String.Format(“民國{0}年{1}月{2}日”, tc.GetYear(d), tc.GetMonth(d), tc.GetDayOfMonth(d));
可惜的是,ToString()沒有支援Format參數指定輸出格式,不然就更加方便了,省掉自行組字串的步驟。另外要特別注意的是,指定小於西元1912/01/01的日期,會拋出超出日期範圍的例外,因為年份沒有負數的表示法。
如果不想用上述的方式,在每個輸出的地方都寫日期轉換的程式碼,有沒有更簡單的方式?
有的,可以在程式開始執行時,指定執行序的文化與曆法:
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-TW");
Thread.CurrentThread.CurrentCulture.DateTimeFormat.Calendar = new TaiwanCalendar();
當使用DateTime.Now.ToString()時,得到的就是民國年日期,而且是整個系統範圍皆適用。
若需要用到台灣陰陽曆(農民曆)處理,也可使用TaiwanLunisolarCalendar類別來做轉換,使用方式相同。