2012-06-13 31 views
1

我:HTML5遊戲<->服務器

  1. PHP套接字服務器

  2. PHP頁面來處理與服務器&分貝

  3. 客戶端PHP頁面,它使用JavaScript /畫布通信顯示&與遊戲互動。

我想要的是用戶使用PHP頁面進行連接和身份驗證,這將啓動到服務器的套接字連接。根據來自該套接字的信息,可能會觸發一些聊天信息和事件以將數據加載到客戶端php頁面。

什麼是正確的處理方法。在之前我已經使用ajax的所有實例中,用戶觸發事件,而不是服務器,並且javascript等待php頁面的響應。

從php套接字的哪一段php代碼可以讓我發送消息到canvas元素?

下面是一個例子與上面可能不是很有啓發:

IE: PHP讀取關閉其套接字連接{"name":"msg","from":"user1","time":12345,"msg","hello world"}

在這一點上做什麼PHP做的**這樣......?

客戶端與"id='Incoming'"

我想啓動以下的javascript一個div:

function handleMessage(msgObj) { 
    var cText = document.getElementById("Incoming").innerHTML; 
    cText += "(" + msgObj.time + ")" + msgObj.from + " says: " + msgObj.msg +"<br/>"; 
    document.getElementById("Incoming").innerHTML = cText; 
} 

我想我試圖找出一個客戶端的網頁應該如何頂嘴PHP插座...

這是可能的,或者我需要在Flash中一個客戶端,JAVA等?

回答

1

當您有數據要發送時,您可以從客戶端向服務器發送內容(例如,用戶通常通過事件處理程序提交按鈕)。 websocket在從服務器接收數據時也觸發事件(socket.onmessage)。 Simples。

ws.onmessage=function (evt) { handleMessage(evt.data); }; 

(或者只是改變你的handleMessage函數體來使用msgObj。數據爲文本值)

從php套接字的哪一段php代碼可以讓我發送消息到canvas元素?

您使用的是什麼websocket實現?它們都有不同的API(注意websocket與網絡套接字不同)

+0

我在看這個:http://php.net/manual/en/sockets.examples.php |所以,我想你是在談論websockets這可能是一個更好的方法來做到這一點? :/任何地方的任何文檔? – Kirk

+0

您不能使用Javascript的網絡套接字。最近的瀏覽器只支持Websockets(HTML5)。 Websockets並非在PHP中本地實現 - 爲PHP和websockets提供Google。我假設你明白了所有這些 - 如果不是這樣,那麼COMET是一種更明智的方法 - 但無論實現如何,你都必須學習很多關於持久連接的詳細HTTP。 – symcbean

0

你應該用彗星:
http://en.wikipedia.org/wiki/Comet_(programming

AJAX是好多了,也異步

http://www.ape-project.org/
http://www.stream-hub.com/
...

http://cometdaily.com/maturity.html

或使用HTML5 WebSockets的

+0

爲什麼?唯一可以使用javascript *打開和操作的「套接字」類型是* websocket。 – symcbean

+0

彗星看起來太容易出錯,並且會像使用它的頭痛一樣;我試圖避免安裝任何服務器,只使用已安裝的服務... – Kirk

+0

那麼爲什麼不使用JavaScript直接或AJAX的HTML5網絡套接字?以及javascript/ajax方法不會阻止整個應用程序,並且更快更異步 - 所以爲什麼不呢?但它不同的母雞的PHP套接字,HTML網絡套接字等 –