0
目前,我使用WCF爲我的項目做網絡。但是,我想切換到一些網絡庫,例如Lidgren Network。從WCF切換到網絡庫
由於它是WCF,它使用接口,可以發送&接收數據和一個方法,並且Lidgren網絡有點低級,你需要建立和發送你的數據包,這不是問題。
問題是,我沒有任何想法,我只能用一種方法發送和接收數據,就像使用WCF一樣。
比方說,我得到了一些客戶端代碼與WCF:
void SomeCode()
{
var status = wcfChannel.CheckUserId(id);
if (status)
{
// true
// do something
}
else
{
// false
// do something
}
}
而且隨着lidgren網絡將是:
void SomeCode()
{
var packet = new packet(...);
packet.Write(id);
var status = send2Server(packet);
if (status)
{
// true
// do something
}
else
{
// false
// do something
}
}
所以,這send2Server「應該以某種方式實施。由於它只能在一個循環中接收數據包(?),所以我沒有任何想法。 好吧,我可以在SomeCode的類中有一些變量,並且接收數據包的客戶端網絡接收循環會在SomeCode的類中更改這些變量。此外,還需要添加一些延遲,並獲取這些變量以供進一步使用。 但是,應該有更好的方法來實現這一點。
這更好的辦法通常是SOAP(WCF),REST(網絡API /'HttpClient')或其他一些協議和相應的庫。爲什麼你想避免WCF? – Mitch
那麼,主要是因爲WCF不適用於Mono。 – slicy
Mono支持大多數WCF,請參閱http://www.mono-project.com/docs/web/wcf/ – Mitch