【问题标题】:HTML5 game <-> serverHTML5 游戏 <-> 服务器
【发布时间】:2012-06-16 13:29:37
【问题描述】:

我有:

  1. PHP 套接字服务器

  2. 处理与服务器和数据库通信的 PHP 页面

  3. 客户端 .php 页面,使用 javascript/canvas 显示游戏并与游戏交互。

我想要的是用户使用 PHP 页面进行连接和身份验证,这将启动与服务器的套接字连接。根据来自该套接字的信息,可能会触发一些聊天信息和事件以将数据加载到客户端 php 页面中。

处理这个问题的正确方法是什么。在我之前使用 ajax 的所有情况下,用户触发事件,而不是服务器和 javascript 等待 php 页面的响应。

php 套接字中的哪一段 php 代码可以让我向画布元素发送消息?

这是一个例子,因为上面可能不是很有启发性:

IE: PHP 读取其套接字连接{"name":"msg","from":"user1","time":12345,"msg","hello world"}

此时 PHP 做了什么?** 所以...

客户端有一个带有"id='Incoming'"的div

我想启动以下 javascript:

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 等制作客户端?

【问题讨论】:

    标签: php javascript sockets client


    【解决方案1】:

    当您有数据要发送时(例如,用户提交一个按钮),您通常通过事件处理程序将内容从客户端发送到服务器。当 websocket 从服务器(socket.onmessage)接收数据时,它也会触发事件。简单。

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

    (或者只是将您的 handleMessage 函数体更改为使用 msgObj.data 作为文本值)

    php 套接字中的哪一段 php 代码可以让我向画布元素发送消息?

    您使用的是什么 websocket 实现?它们都有不同的 API(注意 websocket 与网络套接字不同)

    【讨论】:

    • 我在看这个:php.net/manual/en/sockets.examples.php |所以,我认为你在谈论 websockets 这可能是一个更好的方法? :/ 任何文档,任何地方?
    • 您不能使用 Javascript 中的网络套接字。 Websockets 仅在最近的浏览器 (HTML5) 中受支持。 Websockets 不是在 PHP 中本地实现的 - 有一个 PHP 和 websockets 的谷歌。我假设您了解所有这些 - 如果不了解,那么 COMET 可能是一种更明智的方法 - 但无论实现如何,您都必须学习很多关于持久连接 voer HTTP 的知识。
    【解决方案2】:

    您应该使用 Comet:
    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

    【讨论】:

    • 为什么?唯一可以使用 javascript 打开和操作的“socket”类型 websocket。
    • comet 看起来太容易出错,而且使用起来会很头疼;我试图避免安装任何服务器,只使用已安装的服务...
    • 那为什么不直接使用 javascript 或 AJAX 的 html5 网络套接字呢?那么 javascript / ajax 方法不会阻塞整个应用程序,并且速度更快且异步 - 那为什么不呢?好吧,但它的不同母鸡 php 套接字、html 网络套接字等等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    相关资源
    最近更新 更多