BeWo Server-Client update
This commit is contained in:
@@ -827,6 +827,7 @@ namespace BS.Shared
|
||||
Message,
|
||||
Login,
|
||||
Logout,
|
||||
Null
|
||||
Null,
|
||||
StatusNotification
|
||||
}
|
||||
}
|
||||
88
Shared/Packet.cs
Normal file
88
Shared/Packet.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
|
||||
using BS.Shared;
|
||||
|
||||
namespace BeWoChatServer
|
||||
{
|
||||
public class Packet
|
||||
{
|
||||
// Fehlercodes zwischen 1500 und 1999
|
||||
public Socket Socket { get; set; }
|
||||
public string ClientName { get; set; }
|
||||
public long SenderPersonOid { get; set; }
|
||||
public long RecipientPersonOid { get; set; }
|
||||
public DataIdentifier DataIdentifier { get; set; }
|
||||
public string ChatMessage { get; set; }
|
||||
public DateTime MessageTimeStamp { get; set; }
|
||||
public string Tenant { get; set; }
|
||||
|
||||
public byte[] DataBuffer = new byte[1024];
|
||||
|
||||
//Aufbau Message:
|
||||
// die ersten fünf ";" ignorieren
|
||||
// SenderOid;RecipientOid;ClientNameLength;MessageLength;ChatDataIdentifier;Tenant;[ClientName][ChatMessage][MessageTimeStamp]
|
||||
|
||||
//23;281;20;389;1;[Tenant]; 6 Semikola
|
||||
|
||||
public Packet(Socket pSocket, string pClientName, long pSenderPersonOid, long pRecipientPersonOid)
|
||||
{
|
||||
Socket = pSocket;
|
||||
ClientName = pClientName;
|
||||
SenderPersonOid = pSenderPersonOid;
|
||||
RecipientPersonOid = pRecipientPersonOid;
|
||||
MessageTimeStamp = DateTime.Now;
|
||||
}
|
||||
|
||||
public void GetData(string message)
|
||||
{
|
||||
Debug.WriteLine("Nachricht: " + message);
|
||||
|
||||
try
|
||||
{
|
||||
var gesplittet = message.Split(';');
|
||||
|
||||
var senderPersonOidString = gesplittet[0];
|
||||
var recipientPersonOidString = gesplittet[1];
|
||||
var chatNameLengthString = gesplittet[2];
|
||||
var chatMessageLengthString = gesplittet[3];
|
||||
var chatIdentifierString = gesplittet[4];
|
||||
Tenant = gesplittet[5];
|
||||
|
||||
DataIdentifier = (DataIdentifier) Convert.ToInt32(chatIdentifierString);
|
||||
|
||||
SenderPersonOid = Convert.ToInt64(senderPersonOidString);
|
||||
RecipientPersonOid = Convert.ToInt64(recipientPersonOidString);
|
||||
|
||||
var chatNameLength = Convert.ToInt32(chatNameLengthString);
|
||||
var chatMessageLength = Convert.ToInt32(chatMessageLengthString);
|
||||
|
||||
var headerLength = senderPersonOidString.Length + recipientPersonOidString.Length + chatNameLengthString.Length + chatMessageLengthString.Length + chatIdentifierString.Length + Tenant.Length + 7;
|
||||
var actualMessage = message.Substring(headerLength - 1);
|
||||
|
||||
ClientName = actualMessage.Substring(0, chatNameLength);
|
||||
ChatMessage = actualMessage.Substring(chatNameLength, chatMessageLength);
|
||||
|
||||
var dateString = actualMessage.Substring(chatMessageLength + chatNameLength);
|
||||
|
||||
MessageTimeStamp = DateTime.ParseExact(dateString, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
Debug.WriteLine("Error 1500: " + exception.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] GetDataStream()
|
||||
{
|
||||
var result = "";
|
||||
|
||||
result += SenderPersonOid + ";" + RecipientPersonOid + ";" + ClientName.Length + ";" + ChatMessage.Length + ";" + (int) DataIdentifier + ";" + Tenant + ";" + ClientName + ChatMessage + DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");
|
||||
|
||||
return Encoding.UTF8.GetBytes(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -216,6 +216,7 @@
|
||||
<Compile Include="Extensions\EnumExtensions.cs" />
|
||||
<Compile Include="Extensions\ICollectionExtensions.cs" />
|
||||
<Compile Include="Extensions\IDictionaryTExtensions.cs" />
|
||||
<Compile Include="Packet.cs" />
|
||||
<Compile Include="Rss\RssManager.cs" />
|
||||
<Compile Include="Services\BillingData.cs" />
|
||||
<Compile Include="Services\Calculations.cs" />
|
||||
|
||||
Reference in New Issue
Block a user