SilverlightとWCFDuplexを使用してターンベースのゲームを作成しようとしています。しかし、私はログインページ以上のことはできませんでした。私は立ち往生しており、あなたの提案/助けのすべてが大いにありがたいです。
私のアーキテクチャに関していくつか質問があります。
(WCFポーリングデュプレックス)GameServiceをIISでホストするのは良い方法ですか、それともコンソールアプリケーションを作成してメソッドを提供する必要がありますか?
ホームページで2つのメソッドを呼び出しています。1番目のLoginAsyncで、1番目が完了すると、2番目のGetLoggedInPlayersAsyncを呼び出します。しかし、私には理解できないエラーが発生しています。
ここに私が今まで持っているもの
[ServiceContract(Namespace="", CallbackContract=typeof(IGameClient), SessionMode=SessionMode.Required)]
// [DeliveryRequirements(RequireOrderedDelivery=true)]
public interface IGameService
{
[OperationContract(IsInitiating=true)]
bool Login(Player player);
[OperationContract(IsInitiating=false)]
void Logout();
[OperationContract]
IEnumerable<Player> GetLoggedInPlayers();
}
public interface IGameClient
{
[OperationContract(IsOneWay=true)]
void NotifyNewUserConnected(Player player);
}
public Home()
{
InitializeComponent();
client = Helpers.Extensions.GetGameServiceClient();
this.Loaded += new RoutedEventHandler(Home_Loaded);
client.GetLoggedInPlayersCompleted += new EventHandler<GetLoggedInPlayersCompletedEventArgs>(client_GetLoggedInPlayersCompleted);
client.NotifyNewUserConnectedReceived += new EventHandler<NotifyNewUserConnectedReceivedEventArgs>(client_NotifyNewUserConnectedReceived);
client.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(client_LoginCompleted);
}
void Home_Loaded(object sender, RoutedEventArgs e)
{
// get the player
if (Player == null)
{
SignInWindow window = new SignInWindow();
window.Show();
Player = new Player
{
PlayerName = window.txtName.Text
};
window.Closed += new EventHandler(window_Closed);
}
}