02-12-2019, Saat: 09:21
Delphi Tethering İle bir Chat Projesi Yapıyorum. Server Tarafını Komple Yazdım bir problem yok clientler arası tüm clientlerle birbirleri arası görüşme yaptırabiliyorum. Tek istediğim şey Client to Client Mesaj atabilmesi Bununla Alakalı bir kac bisi yaptım fakat olmadı. bu konuda yardımlarınızı bekliyorum.
Örnek Verecek Olursam
Client 1
Client 2
Client 3 Bunlar ağda online olan kullanıcılarım
Client 1 den Client 3 e Mesaj atabileceğim aynı zamanda
Client 3 den client 1 e
Clientler Üzerinde 3 Farklı Grubum var Bunları ise group, user, alluser şeklinde 3 kısma ayırdım
Tethering de İse şunları yapıyprum
Örnek Verecek Olursam
Client 1
Client 2
Client 3 Bunlar ağda online olan kullanıcılarım
Client 1 den Client 3 e Mesaj atabileceğim aynı zamanda
Client 3 den client 1 e
Clientler Üzerinde 3 Farklı Grubum var Bunları ise group, user, alluser şeklinde 3 kısma ayırdım
procedure TClientMain.btnSendClick(Sender: TObject);var I : Integer; lvMessage:String; lvMessageYou:String; begin lvMessage := Trim(memSendmessage.Text); memSendmessage.SetFocus; if lvMessage = '' then exit; case lvMessagetype of // Seçilen Kullanıcı Grubuna Mesaj eGroup: begin end; // Tek Kullanıcı İle Görüşme eUser: begin Problemli yer lvMessageYou := 'Sen:' + Trim(memSendmessage.Text); MemMessages.Lines.Add(lvMessageYou); for I := 0 to ClientAppProfile.ConnectedProfiles.Count -1 do begin ClientAppProfile.Resources.FindByName('UserName').Value := 'SomeValue'; // if ClientAppProfile.Text = lvUserIdSendMessage then ClientAppProfile.SendString(ClientAppProfile.ConnectedProfiles[I],SendMessageUserAdd(lvUserName,lvMessage),SendMessageUserAdd(lvUserName,lvMessage)); end; end; // Sisteme Kayıtlı Tüm Kullanıcılara Mesaj Gönderme. eAllUser: begin lvMessageYou := 'Sen:' +Trim(memSendmessage.Text); MemMessages.Lines.Add(lvMessageYou); for I := 0 to ClientAppProfile.ConnectedProfiles.Count -1 do begin ClientAppProfile.SendString(ClientAppProfile.ConnectedProfiles[I],SendMessageUserAdd(lvUserName,lvMessage),SendMessageUserAdd(lvUserName,lvMessage)); end; end; // ShowMessage(ClientAppProfile.ConnectedProfiles.Count.ToString); memSendmessage.Clear; end;
Tethering de İse şunları yapıyprum
if AResource.ResType = TRemoteResourceType.Data then begin case lvMessagetype of // Seçilen Kullanıcı Grubuna Mesaj eGroup: begin end; // Tek Kullanıcı İle Görüşme eUser: begin //if Assigned(AResource.Profile) then // sIdentifier := AResource.Profile.Identifier; MemMessages.Lines.Add(AResource.Value.AsString); MemMessages.Lines.Add(''); end; // Sisteme Kayıtlı Tüm Kullanıcılara Mesaj Alma eAllUser: begin lvUseName := lvUserName; MemMessages.Lines.Add(AResource.Value.AsString); MemMessages.Lines.Add(''); end; end; end;