0

我使用 Ajax-php-xml 技术制作了聊天应用程序。如果用户数低于 50,它可以正常工作。否则应用程序的速度会大大降低。我想一次管理 200 个用户。

我的 XML 格式是

<?xml version="1.0" encoding="utf-8"?>
        <messageData>
        <message>
        <sender>user__5338</sender>
        <receiver>user__5339</receiver>
        <content>hello</content>
        <date_time>2012-08-17  09:24:57</date_time>
        <status>unread</status>
        </message>
        <message>
        <sender>user__5338</sender>
        <receiver>user__5339</receiver>
        <content>hello</content>
        <date_time>2012-08-17  09:26:21</date_time>
        <status>unread</status>
        </message>
        </messageData>

在我的 php 中,我使用这种方法从 xml 文件中获取数据

$xml = simplexml_load_file($this->xml_file);
     foreach($xml->message as $chat_data){
         if($chat_data->status =='unread' && $chat_data->receiver ==$username){ 
          $chat_data->status = 'read';
          $xml->asXML($this->xml_file);
          $sender =(string)$chat_data->sender;
          $chat['message'] = (string)$chat_data->content;

          $chat['date'] = (string)$chat_data->date_time;
         }
     }

如何提高聊天应用的速度?我可以通过使用node js来提高速度吗?

4

2 回答 2

0

为什么不使用 json 作为 ajax 传输数据类型?我相信它可能会更快,因为 php 不需要解析 xml。并使用 jQuery 作为 ajax 请求的 javascript 库,它是最好的之一。它支持json。并以本教程为例。

还有一件事,将 ajax 请求之间的间隔设置为 1-3 秒。也许更多。

于 2012-08-17T10:42:59.437 回答
0

使用套接字肯定可以提高您的通信速度,这听起来可能很复杂,但出于您的目的,这就是答案。插座是:

WebSocket 规范定义了一个在 Web 浏览器和服务器之间建立“套接字”连接的 API。简单来说:客户端和服务器之间存在持久连接,双方可以随时开始发送数据。

简单的例子:

    var connection = new WebSocket('ws://html5rocks.websocket.org/echo', ['soap', 'xmpp']);
// When the connection is open, send some data to the server
connection.onopen = function () {
  connection.send('Ping'); // Send the message 'Ping' to the server
};

// Log errors
connection.onerror = function (error) {
  console.log('WebSocket Error ' + error);
};

// Log messages from the server
connection.onmessage = function (e) {
  console.log('Server: ' + e.data);
};

搜索会给你更多的例子

于 2012-08-17T10:48:27.847 回答