TAstaServerSocket.SendCodedMessage


 

Applies to
TAstaClientSocket

 

Declaration
procedure SendCodedMessage(ClientSocket: TCustomWinSocket;
  MsgID: Integer; Msg:
string);

 

Description
SendCodedMessage allows you to send a message to the server, and then make a custom response back to the client. The SendCodedMessage method allows you to roll your own protocol where certain MsgIDs have specific meaning to your application. The ability to create your own protocol in this fashion is a simple yet powerful technique. See the Simple Business Objects code below.

 

The simple code below sends a message to the server, but the message is sent with two different MsgIDs. The server will handle the message differently depending on which of the MsgIDs, 1700 or 1750, accompanies the message.

procedure TForm1.Button4Click(Sender: TObject);

begin

  AstaClientSocket1.SendCodedMessage(ClietnSocket, 1700,
    eClientCodedMessage.Text);

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  AstaClientSocket1.SendCodedMessage(ClientSocket, 1750,
    eClientCodedMessage.Text);

end;

 

The server responds wtih the following implementation code.

 

procedure TForm1.AstaServerSocket1CodedMessage(ClientSocket:
  TCustomWinSocket; Sender: TObject; MsgID: Integer; Msg:
string);

begin

  case MsgID of

    1700: AstaServerSocket1.SendCodedMessage(ClientSocket,
            MsgID, UpperCase(Msg));

    1750: AstaServerSocket1.SendCodedMessage(Clientsocket,
            MsgID, LowerCase(Msg));

  end;

end;

 

When returned to the client, it is picked up in the AstaClientSocket's OnCodedMessage event.

 

 

Simple Business Objects

The following code shows how you could send CodedMessages to a business object instantiated on the server. In this scenario, 1800 and 1850 are "protocol codes" that you control. The client can call those codes, with or without a parameter and invoke a custom response from the server.

 

procedure TForm1.AstaServerSocket1CodedMessage(Sender: TObject;
  ClientSocket: TCustomWinSocket; MsgID: Integer; Msg:
string);

begin

  case MsgID of

    1800: begin

            if MyBusinessObject.ChargeSalesTax(StrToInt(Msg)) then

              AstaServerSocket1.SendCodedMessage(ClientSocket,
                MsgID, 'TRUE')

            else

              AstaServerSocket1.SendCodedMessage(ClientSocket,
                MsgID, 'FALSE');

          end;

    1850: begin

            AstaServerSocket1.SendCodedMessage(ClientSocket, MsgID,
              MyBusinessObject.NewCreditLimit(Msg));

          end;

  end;

end;

 

 



ASTA Overview TAstaClientSocket.SendChatPopup TAstaClientSocket.SendCodedParamList