NO1 留言板(mysql的使用)
演示:http://haojima.net
这个功能很简单。就是对数据库的写入和展示。如果在Windows下,相信大家分分钟都可以搞定。而初次接触.net core + mysql可能需要注意些细节。
首先打开vs2017新建一个asp.net core项目(选Web应用程序),然后nuget 导入Mi
本文来源gao!daima.com搞$代!码#网#
crosoft.EntityFrameworkCore.Tools 1.1.1和MySql.Data.EntityFrameworkCore 8.0.8-dmr。
然后新建一个DbContext类。
public class DataContext : DbContext { //【注意】连接字符串一定要加 sslmode=none string str = @"Data Source=;Database=;User ID=;Password=;pooling=true;CharSet=utf8;port=3306;sslmode=none"; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseMySQL(str); //下面就可以添加要加入数据库的实体了 //public DbSet<Message> Messages { get; set; } }
到此为止,我们已经可以利用EF Core直接连接mysql进行增删改查操作了。注意:需要导入命名空间using Microsoft.EntityFrameworkCore; using MySQL.Data.EntityFrameworkCore.Extensions;
当然。你会说,连接字符串不能硬编码到代码里面。我们也可以放配置文件。appsettings.json
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "SqlServerConnection": "Data Source=;Database=;User ID=;Password=;pooling=true;CharSet=utf8;port=3306;sslmode=none" } }
然后把上面的硬编码注释掉。在Startup.cs文件的ConfigureServices方法添加
var connection = Configuration.GetConnectionString("SqlServerConnection"); services.AddDbContext<DataContext>(options => options.UseMySQL(connection));
【注意】项目名称和路径最好不要有中文,不然会出现些乱七八糟的问题。
【完整代码】:https://github.com/zhaopeiym/BlogDemoCode/tree/master/MessageBoard
NO2 聊天室(WebSocket的使用)
演示:http://socket.haojima.net
WebSocket是Html5新增的一个很酷的技术。下面我们简单讲解下这个很酷的技术
var Socket = new WebSocket(url);//创建 WebSocket 对象
创建了一个WebSocket对象后会触发打开连接事件:
Socket.onopen = function(){ }
除了onopen事件,还有其他三个事件:
Socket.onmessage //客户端接收服务端数据时触发 Socket.onerror //通信发生错误时触发 Socket.onclose //连接关闭时触发
另外还有两个方法:
Socket.send() //使用连接发送数据 Socket.close() //关闭连接
最后还有四个连接状态属性:
Socket.readyState 0 - 表示连接尚未建立。 1 - 表示连接已建立,可以进行通信。 2 - 表示连接正在进行关闭。 3 - 表示连接已经关闭或者连接不能打开。
整个WebSocket常用功能知识点就四个事件、两个方法、四种状态。简单吧,下面我们看看asp.net core后台的配合:
后台添加一个SocketHandler类,并添加一个静态方法Map:
/// <summary> /// 请求 /// </summary> /// <param name="app"></param> public static void Map(IApplicationBuilder app) { app.UseWebSockets(); //【注意】需要 nuget 导入 Microsoft.AspNetCore.WebSockets.Server app.Use(Acceptor); }