まず、すべてのWPFアプリケーションを特定する必要があります。最も簡単な方法は、認証(通常のユーザー名とパスワード)が必要です。認証に成功すると、それからサーバーへの永続的双方向接続が作成されます。 WCFを使用している場合(私は離れていても)、デュプレックスチャネルを使用してください。サーバーがASP.NET MVC Web APIなどの場合は、WebソケットまたはSignalRを使用します。
これで、すべてのアプリケーションがサーバーに接続されており、どの接続がどのユーザーに属しているかが分かりました。ユーザAが図面セッションを開始すると、このユーザはユーザBとCと共有したいと言います。サーバに要求を送信し、ユーザBとCに属する接続を介してメッセージを送信します。ユーザBとCのアプリケーション
描画するときに、すべてのユーザーアクションをシリアル化してサーバーに送信する必要があります(ユーザーBとCの接続に再度転送します)。たとえば、ユーザーが行を描画する場合は、あなたがシリアライズして送信することができます。
class DrawLineCommand {
public Point From {get;set;}
public Point To {get;set;}
}
それともrectangeを埋める場合:
class FillRectangeCommand {
public Brush Brush {get;set;}
public Point TopLeft {get;set;}
public Point BottomRight {get;set;}
}
次に、あなただけのユーザーのBとCのアプリケーションで受信したコマンドを複製します。
もちろん、それはもっと複雑かもしれませんが、あなたに一般的な考えを与えるべきです。
出典
2016-12-05 17:27:40
Evk
これはSignalRと呼ばれています – Tuco