Rabbutmq rpc 방식으로 클라이언트에서 버튼 클릭시 서버에서 랜덤으로 영문자를 보내는 테스트 코드 작성
1. .Net에서 Rabbitmq 를 편하게 사용하기 위해 Easynetq 를 NuGet 패키지에서 설치한다.
2. 서버코드 작성
랜덤으로 7자리 문자열을 받아온다
public static StringData GetRandomString()
{
StringData strResult = new StringData();
Random rand = new Random();
string strRandomChar = "qwertyuiopasdfghjklzxcvbnm";
StringBuilder rs = new StringBuilder();
for (int i = 0; i < 7; i++)
{
rs.Append(strRandomChar[(int)(rand.NextDouble() * strRandomChar.Length)]);
}
strResult.ResultStringData = rs.ToString();
return strResult;
}
Rabbitmq 연결
var bus = RabbitHutch.CreateBus("host=localhost");
bus.Advanced.Conventions.RpcRoutingKeyNamingConvention += messageType => "RabbitmqRPC.RandomString";
bus.RespondAsync<Null, StringData>(req =>
Task.Factory.StartNew(()=>
{
StringData ResultString = new StringData();
try
{
ResultString = GetRandomString();
Console.WriteLine(ResultString.ResultStringData);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return ResultString;
}));
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
3. 클라이언트 코드 작성 (viewmodel, delegatecommand connect 3개의 클래스 사용)
ViewModel
private ICommand getStringData;
public ICommand GetStringData
{
get { return (this.getStringData) ?? (this.getStringData = new DelegateCommand(GetString)); }
}
public void GetString()
{
helper = new RabbitmqConnetHelper();
StringData item = helper.RequsetString();
}
4. 연결 확인
큐가 제대로 생성되었는지, 데이터가 잘 오고가는지 확인
'Rabbitmq' 카테고리의 다른 글
[ Rabbitmq ] 서버에서 클라이언트로 hello world 보내기 (0) | 2022.12.27 |
---|---|
[ Rabbitmq ] Rabbitmq 사용하기 1. Window 에 RabbitMQ 설치, management 띄우기 (0) | 2022.12.27 |
[ Rabbitmq ] Rabbitmq 통신: c# 과 파이썬 이용해서 rabbitmq publish , consume (0) | 2022.09.04 |
[ Rabbitmq ]Window에 Rabbitmq 설치, management 띄우기 (0) | 2022.09.02 |