2014-03-01 50 views
2

我有Flash應用程序,它是簡單的異步,基於nodejs的Flash聊天。如何使服務器瞭解接收到的數據類型,反之亦然

情況是:服務器和客戶端的所有數據都是相同的,只是一些文本。 我的問題是:如何讓客戶端發送特定數據,以便服務器瞭解數據是什麼並運行特定功能。客戶如何理解其獲取的數據類型以及如何處理它。

例如:客戶端發送消息「hello」,以便服務器知道這只是一個聊天消息。 然後客戶端發送'awesome_btn_cliked',這是一些函數應該在服務器端進行處理,以便服務器瞭解並將結果數據發送回客戶端。

客戶端發送:hello =只是一個廣播給所有客戶端的消息。 將客戶端'awesome_btn_clicked':function {1 + 1 = 2} - >結果廣播給所有客戶端。

就是這樣的。我希望我完全解釋我需要什麼。

+1

您是否有權訪問客戶端和服務器源代碼?爲什麼不簡單地創建一個頭部方案,其中消息的前兩個字母表示源頭。例如,「c:hello」c:可以被服務器解釋爲聊天消息。 「e:some_btn_click」將被解釋爲事件。冒號只是一個樣本分隔符。你可以用任何你感覺的方式來格式化信息。另外,爲什麼不使用JSON並使用屬性值來區分消息類型? –

+0

是的,我有訪問權限。我一直在考慮使用「e:some_btn_click」風格。但是,你能告訴我更多關於如何使用JSON的嗎?例如,開發一些簡單的遊戲類應用有什麼更好的? – ValRus

+0

也可以從AS3發送原始JSON到nodejs套接字服務器嗎? – ValRus

回答

0

您應該使用您的數據發送元數據,以便服務器瞭解它需要做什麼。這意味着您正在定義所有客戶端和服務器需要支持的協議。對於這兩種不同的情況(無論是普通的聊天消息還是服務器需要執行的某些命令),您都可以推出自己的協議。但是在軟件開發中,事情總是從小規模開始,並迅速增長。

你可能想看看XMPP這是一個基於XML的聊天消息協議。 http://xmpp.org/xmpp-protocols/

+0

現在它只是 - > ** socket.send (味精); **所以應該是 - > ** msg = +「HELLO WORLD」**? 我想XMPP對我來說太多了,即使它可能是答案。 – ValRus

+1

msg =「<數據類型='聊天'>」+「你好ValRus」+「」 –

+0

你給1 + 1的有趣的例子,其中2需要被髮送到所有其他客戶端。爲什麼發送該功能的客戶端應用程序不是發送「2」而是作爲聊天消息? –

相關問題