asp.net 之前應該是弄了一個“偽websocket”,也就是說它會自動地使用 http 長連接來模擬 websocket,而不是真正 websocket。不知道你是否使用了過時的、偽 websocket 功能的 asp.net。
uj5u.com熱心網友回復:
現在就確定,用 windows service 方式來發布 websocket 服務器端,用console 方式來測驗它。不要使用 asp.net,不要使用 IIS。
這樣你能在將來省許多事情。因為 websocket 服務器端編程跟 asp.net 網頁編程,一點毛關系都沒有。
websocket 服務端設計開發,根本不應該作為 asp.net 平臺下的開發計劃。 asp.net 應該用來承載前端網頁,以 http 方式下載各種資源檔案到瀏覽器。而不應該承載 websocket 服務器端。如果你曾經通過 asp.net SignalR 嘗了嘗鮮,那么現在應該把它從 asp.net 中徹底剝離出來。
Websocket 服務,將來是一個“大型訊息服務系統”,通訊的是純粹的自定義業務資料。而 asp.net 不過是做網頁的。
uj5u.com熱心網友回復:
我就用的.net里自帶的Websocket功能,httphandler 中判斷請求是不是WebSocket,然后建立長連接
if (context.IsWebSocketRequest)
{
....
context.AcceptWebSocketRequest(skt.ProcessChat);
......
public async Task ProcessChat(AspNetWebSocketContext context)
{
關鍵是,它在vs里除錯的時候一點問題都沒有啊
uj5u.com熱心網友回復:
現在我放到阿里云服務器上又出新問題了,瀏覽器里報錯
ebSocket connection to 'ws://m1.imilu.la/hd/groupsocket?GID=4' failed: Error during WebSocket handshake: Unexpected response code: 200