我正在研究設計一個可以在多個平臺上運行的應用程序(即windows,macintosh,android,iphone),但它們都與在一臺中央服務器上存儲和處理的數據交互。設計用於處理平臺獨立數據的C#服務器?
基本上: 服務器託管着全球的狀態 - 包括活動客戶端,它們在世界中的實體以及從該實體的角度渲染世界的規則。 客戶端持有對該實體的引用,並向服務器發送請求以更新其狀態並根據其實體檢索呈現。
我最強烈的語言是C#,所以我寧願寫這個服務器。
我知道我需要開發自己的命令語法,可以由服務器解釋並且對所有客戶端都是通用的。我不知道的是關於編碼服務器的實際實現的很多內容,只是關於必要的高級概念。
.Net套接字API是否可以與非.Net套接字客戶端一起使用?這甚至是一個有效的問題嗎?
基本上我想知道如何以結構化的方式發送和接收數據,但是一種獨立於平臺的方式。
需要的請求中的數據的樣本會是這樣的
實體:[實體名稱]
的RequestType:[請求類型](比方說其動作命令)
操作類型:操作類型]
ActionProp1:[動作屬性]
。
。
或
實體:[實體名稱]
的RequestType:[請求類型](比方說請求呈現)
RenderDimX:[X維度的渲染]
RenderDimY:[渲染的Y尺寸]
我沒有真正策劃出來的請求的語法呢,所以不要批評:)
這正是我想要從客戶端發送到服務器的消息種類。
那麼,如何設置一個C#服務器來處理將發送這些類型的消息的客戶端?或者,我是否全力以赴?
謝謝!
圖像將作爲byte []在內存中生成,並且永遠不會保留到文件系統,這會影響REST的任何內容嗎? – FlyingStreudel 2011-03-23 14:32:28
本質上,服務器的初始狀態是由一些設置的資源決定的,但從這一點開始,所有內容都存儲在內存中。目標是將其設置爲僅用於一個實例的臨時或即時服務器。 (如果這改變了什麼) – FlyingStreudel 2011-03-23 14:41:40
我相信你可以序列化圖像並將它們提供爲base-64編碼的字符串。您將達到默認郵件大小的上限,因此請注意web.config中的限制。很容易改變,由於它引發的錯誤說明了文件大小需要增加的簡單和簡單。 – Josh 2011-03-23 14:42:11