本人本科期间认真的学过Java语法算法以及c#语法
现在毕设想做一个与餐厅点餐有关的系统。
本科学习过所有的语言中Java是最拿手的,但是我感觉Java不好设计这个界面的前端,所以最终在毕设里填的是c#。但是对于我来说,最大的难点就是我不会用c#进行通信,最基本的通信都不会,就是消费者用这个系统点过餐之后,该怎么把点餐的信息传递给后厨(当然我这里只是简单的描述一下,信息传递过去之后还要进行各种处理)。这就让我心里很没底。而且本科期间,没有学过任何架构,spring boot➕vue ,signalR等等是完全没有接触过,也不知道是用来干什么的。
所以就是想来问问,该怎么把消费者点餐之后的信息传递给后厨。如果一定要用什么架构或者技术的话,能不能烦请大佬告诉我一下该学些什么,我可以去网上搜集资源自学一下。
先谢谢各位了!
还有就是,我不太想在毕设上面花费太多的时间,真的不是因为懒,是因为我还要准备考研的复试。其中有100分的机试考察算法题相当重要,而且难度比较大。所以烦请大佬推荐一些容易上手的技术,非常感谢!!!!!
emm,最简单的就是springboot提供http restful接口,c#直接http调用就行了吧。c#肯定也有支持http和json解析的库。我的理解是这也是前后端分离了,只不过前端是c#而已
使用C#+Signalr可以比较轻松实现你的需求,代码量也很少,一个服务端,一个客户端,总代码量不到100行。
以下是前几天回答其他小伙伴写的示例程序,实现方案大同小异。
先看演示效果:
解决方案目录:
服务端示例代码:
MessageHub.cs
using Microsoft.AspNetCore.SignalR;
namespace ChatDemo.Server.Hubs
{
public class MessageHub : Hub
{
public Task SendMessage(string user, string message)
{
Console.WriteLine($"服务器接收到消息,内容:{user},{message}");
return Clients.All.SendAsync("ReceiveMessage", user, message);
}
/// <summary>
/// Called when a new connection is established with the hub.
/// </summary>
/// <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the asynchronous connect.</returns>
public override Task OnConnectedAsync()
{
Console.WriteLine($"客户[{Context.ConnectionId}]连接成功.");
return base.OnConnectedAsync();
}
}
}
Program.cs
using ChatDemo.Server.Hubs;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSignalR();
var app = builder.Build();
app.MapHub<MessageHub>("/hub/message");
app.Run();
客户端
using Microsoft.AspNetCore.SignalR.Client;
namespace ChatDemo.Client
{
public partial class FrmMain : Form
{
private HubConnection _connection;
public FrmMain()
{
InitializeComponent();
}
private async void btnSendMessage_Click(object sender, EventArgs e)
{
try
{
await _connection.InvokeAsync("SendMessage", txtUser.Text, txtNewMessage.Text);
}
catch (Exception ex)
{
AppendMessage(ex.Message);
}
}
private void FrmMain_Load(object sender, EventArgs e)
{
_connection = new HubConnectionBuilder()
.WithUrl("http://localhost:5025/hub/message")
.Build();
_connection.Closed += async (error) =>
{
await _connection.StartAsync();
};
_connection.On<string, string>("ReceiveMessage", (user, message) =>
{
Invoke(() =>
{
var newMessage = $"{user}: {message}";
AppendMessage(newMessage);
});
});
try
{
_connection.StartAsync();
AppendMessage("已成功连接到消息服务器");
txtNewMessage.Focus();
}
catch (Exception ex)
{
AppendMessage(ex.Message);
}
}
private void AppendMessage(string message)
{
rtxtMessages.AppendText($"[{DateTime.Now}]==>>{message}{Environment.NewLine}");
}
}
}
数据库呢