C SignalR的簡單實現

2022-03-03 16:13:15 字數 2459 閱讀 2659

簡單的實現了廣播和私聊;下面是效果圖:

實現過程:

首先通過neget 在專案中安裝signalr

到這裡準備工作就完成了; 這裡的 startup.cs 和 web.config裡面的配置 有點麻煩 第一次實現沒有經驗 導致後面**總是沒有生成前台頁面的引用【~/signalr/hubs】,導致執行以後報404錯誤;

他們的關係是這樣的

實現**:

後台**:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.threading.tasks;

using

system.web;

using

microsoft.aspnet.signalr;

using

microsoft.aspnet.signalr.hubs;

namespace

; users.add(userentity);

clients.all.notifyuserenter(nickname, users);

//呼叫前台notifyuserenter方法

} list

useridlist = new list();

//////

傳送訊息

/// ///

//////

public

void sendmessage(string nickname, string message, string

selectuserid)}}

else}}

public

class

userentity

public

string connectionid }}

前台**:

c#" autoeventwireup="

true

" codebehind="

webform1.aspx.cs

" inherits="

" %>

"">"

rs">0

"text

" id="

name

" />

"button

" id="

dl" value="

登入" />

mb">

"">請選擇

select>

"text

" id="

val" />

"button

" id="

fs" value="

傳送" />

"lt">

頁面就是引用: 就是前面說的報404 錯誤的地方 引用有風險 配置需謹慎!!!

1. js定義後台呼叫方法 chat.client.方法名=function(){} 這樣定義的方法在後台裡面可以用 clients.屬性.方法名()的方式呼叫 這裡的屬性有

all 就是廣播;client就是單個推送;其他的沒有嘗試。

2.js呼叫後台定義的方法:$.connection.chatroomhub.server.方法名(),【chatroomhub】 便是後台**裡面的「hubname」; 上面將 $.connection.chatroomhub 賦值給了chat,另外js呼叫後台方法名時首字母小寫  列:chat.server.userenter(name)   不然會找不到方法

3.   $.connection.hub.start().done(function () ); 這個方法應該是連線的意思吧;有時間了試一下 ;

暫時就寫到這裡;

參考文件: 

這裡寫的比我好可以去看看;

執行緒的簡單實現

public class threadsample public static class thread1 implements runnable catch interruptedexception e public static class thread2 extends thread catc...

AutoPager的簡單實現

展開後如下所示 這個功能雖然比較小,但是實現起來是非常有意思的事情,我們可以選擇多種方法達到目的。下面我介紹一種簡單的實現方式。1 首先移動滾動條會觸發window.onscroll事件。2 我們可以根據滾動條滾動時螢幕位置和頁面底部的距離來判斷是否需要翻頁。需要用到三個函式 1 pageheigh...

棧的簡單實現

設棧採用順序儲存結構 用動態陣列 請編寫棧的各種基本操作的實現函式 棧的動態陣列順序儲存結構可定義如下 struct stack 棧的基本操作可包括 void initstack stack s 構造乙個空棧 s int emptystack stack s 若棧s 為空棧返回 1,否則返回0 vo...