当然我们也可以通过在Visual Studio中设置 NuGet Packages的源,来引用这个程序集。 2.在project.json添加引用 "MicrosoftAspNetCoreSignalRServer": "0-*", "MicrosoftAspNetCoreWebSockets": "0-*" 可以注意到SignalR的版本是0.2.0的alpha版本,所以后续版本可能变化也会比较大! 听说是好重写的。 值得注意的是,SignalR目前只能在ASP.NET Core 1.1及以上版本上使用,在这个文章中我使用的.NET Core SDK版本为 1.0.0-preview2-003131 ,所以引用有问题的同学可以尝试把CoreApp版本改为1.1,所有AspNetCore的程序集也都改变为1.1的版本。 3.添加配置代码 我们需要在Startup类中的 ConfigureServices方法中添加如下代码: public void ConfigureServices(IServiceCollection services) { servicesAddSignalR(options => { optionsHubsEnableDetailedErrors = true; }); } 在Startup类中的Configure方法中添加如下代码: appUseWebSockets(); appUseSignalR(); 4.添加一个HUB类 这里我们只实现一个小Demo,一个简单的聊天室,多个人进入可以看到各自发送的信息: public class ChatHub : Hub { public static List ConnectedUsers; public void Send(string originatorUser, string message) { ClientsAllmessageReceived(originatorUser, message); } public void Connect(string newUser) { if (ConnectedUsers == null) ConnectedUsers = new List(); ConnectedUsersAdd(newUser); ClientsCallergetConnectedUsers(ConnectedUsers); ClientsOthersnewUserAdded(newUser); } } 5.客户端支持 在wwwroot目录下创建一个名为chat.html的Html静态文件,内容如下:
Awesome Chat Application
同目录下建立一个chat.js添加要实现功能的脚本: var userName = prompt("Enter your name: "); var chat = $connectionchatHub; chatclientmessageReceived = function (originatorUser, message) { $("#messages")append('
' + originatorUser + ': ' + message); }; chatclientgetConnectedUsers = function (userList) { for (var i = 0; i < userListlength; i++) addUser(userList[i]); }; chatclientnewUserAdded = function (newUser) { addUser(newUser); } $("#messageBox")focus(); $("#sendMessage")click(function () { chatserversend(userName, $("#messageBox")val()); $("#messageBox")val(""); $("#messageBox")focus(); }); $("#messageBox")keyup(function (event) { if (eventkeyCode == 13) $("#sendMessage")click(); }); function addUser(user){ $("#userList")append('