SendPrivateMessage Xamarin - PullRequest
       20

SendPrivateMessage Xamarin

0 голосов
/ 06 августа 2020

Я хотел бы спросить, как я могу вызвать Отправить личное сообщение в Xamarin. Ниже приведен пример, который я сделал.

Пожалуйста, проверьте код выше, я не знаю, какую ошибку я сделал. кроме того, я использую онлайн-сервер, пожалуйста, помогите ...

public void Connect(string userName)
{

   var id = Context.ConnectionId;

   if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0)
   {

       ConnectedUsers.Add(new UserDetail { ConnectionId = id, UserName = userName });

       // send to caller
       Clients.Caller.onConnected(id, userName, ConnectedUsers, CurrentMessage);

       // send to all except caller client
       Clients.AllExcept(id).onNewUserConnected(id, userName);

   }

}

public void SendPrivateMessage(string toUserId, string message)
{
string fromUserId = Context.ConnectionId;
var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) ;
var fromUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == fromUserId);

   if (toUser != null && fromUser!=null)
   {
       // send to
       Clients.Client(toUserId).sendPrivateMessage(fromUserId, fromUser.UserName, message);

       // send to caller user
       Clients.Caller.sendPrivateMessage(toUserId, fromUser.UserName, message);
   }

}

Здесь, в Xamarin, здесь, в приложении Xamarin:

var hubconnection=new HubConnection("");
var chatHubProvxy=hubconnection.CreateHubProxy("ChatHub");
chatHubProxy.On<string,string>("sendPrivateMessage",(user,message)=>
{
this.RunOnUiThread(()=>
{
TextView txtmsg=new TextView(this);
txtmessage.LayoutParameters=newLinearLyout.LayoutParams(ViewGroup.LayoutParams.WrapContent,ViewGroup.LayoutParams.WrapContent){
TopMargin=10,
Gravity=GravityFlags.Right
};
});
});
try{
await hubconnection.Start();
}
catch{}
Btnsend.Click+=async(o,e2)=>{
var message=EdtTxt.Text;
await chatHubProxy.Invoke("Connect",new object[]{userfrom});
await chatHubProxy.Invoke("sendPrivateMessage",new object[]{userto, message});
}};
...