2009-10-14 67 views

回答

0

嗯,根據定義,服務器服務和客戶端請求。因此,要創建一個推送場景,您仍然必須首先初始化從客戶端到服務器的連接。然後,您可以將連接保持空閒狀態,直到您需要將某些內容發送給客戶端。輪詢是另一種方法,服務器保留消息並且客戶端經常檢查以查看是否有新消息可用。服務器無法啓動到客戶端的連接。這將使客戶端成爲服務器。換句話說,你可以讓Flash客戶端向服務器註冊它的當前IP,並自己打開一個端口,將自己建立爲服務器。然後,Red5服務器成爲客戶端,並可以連接到Flash客戶端內的服務器。但我想像許多安全限制會阻止你的閃存程序在現實世界中扮演一個服務器的角色。

+0

嗯我只是想通知客戶端有些工作已經完成......但我不能以同樣的方法返回一些「很棒的我做到了」(這會起作用),所以我需要稍後通知客戶... – Hank 2009-10-14 11:16:50

+0

聽起來像你想要投票。根據這些任務需要多長時間,您可以讓您的客戶端每秒鐘/分鐘/小時/天檢查一次服務器,以確定該作業是否已完成。或者你可以保持從服務器到客戶端的連接,客戶端只需等待來自服務器的響應代碼,但有一個超時,以防萬一。 – Killroy 2009-10-15 09:17:50

+0

是啊:)終於解決了這種方式...;) – Hank 2009-10-16 09:37:21

1

這看起來像一個良好的開端: http://www.red5tutorials.net/index.php/Tutorials:Getting_Started_With_Red5_Server

見底部附近爲他們簡單的Flash客戶端。


編輯:

看起來你需要做的是這樣的:現在很明顯我們正在從服務器 - 客戶端將會給我們更多的選擇 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetConnection.html

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetStream.html

這意味着使用「NetStream.play()」讓服務器流數據到第e客戶。

或者您可能需要查看Socket類並手動創建客戶端和服務器之間的直接套接字連接。

請記住,我從來沒有使用Red5。只是試圖幫助:)

+0

:/這是從Flash到Red5的方式...我需要它的另一種方式;)Red5 - > Flash而且也不是方法返回值的方式.. – Hank 2009-10-14 10:21:21

1

對於任何直到今天都沒有找到答案的人:我在red5中工作,並且可以通過AS3中的RemoteSharedObject將消息從red5發送到flash,並連接到red5中的sharedobject。

服務器代碼:

ISharedObject so = getSharedObject(scope, "chat"); 
    so.setAttribute("message","Welcome"); 

客戶端代碼:

 so = SharedObject.getRemote("chat", connection.uri, false); 
    so.connect(connection); 
    so.addEventListener(SyncEvent.SYNC, syncChatHandler); 

    private function syncChatHandler(event:SyncEvent):void { 
    Alert.show(so.data.message,"Information"); 
    } 

此代碼將顯示在消息 「歡迎」 連接的用戶發出警報。從這裏閱讀大量的文檔並使用你的想象力。

相關問題