2013-03-12 141 views
1

我想將登錄的客戶端用戶名與客戶端輸入的消息一起發送到websocket腳本。我需要支持實現另一個可變用戶名,與消息一起發送。現在,我使用:https://github.com/Flynsarmy/PHPWebSocket-Chat和JS是在Websocket中添加自定義數據

Server.send('message', text); 

與服務器作爲FancyWebSocket.This發送到:

var FancyWebSocket = function(url) 
{ 
    var callbacks = {}; 
    var ws_url = url; 
    var conn; 

    this.bind = function(event_name, callback){ 
     callbacks[event_name] = callbacks[event_name] || []; 
     callbacks[event_name].push(callback); 
     return this;// chainable 
    }; 

    this.send = function(event_name, event_data){ 
     this.conn.send(event_data); 
     return this; 
    }; 

    this.connect = function() { 
     if (typeof(MozWebSocket) == 'function') 
      this.conn = new MozWebSocket(url); 
     else 
      this.conn = new WebSocket(url); 

     // dispatch to the right handlers 
     this.conn.onmessage = function(evt){ 
      dispatch('message', evt.data); 
     }; 

     this.conn.onclose = function(){dispatch('close',null)} 
     this.conn.onopen = function(){dispatch('open',null)} 
    }; 

    this.disconnect = function() { 
     this.conn.close(); 
    }; 

    var dispatch = function(event_name, message){ 
     var chain = callbacks[event_name]; 
     if(typeof chain == 'undefined') return; // no callbacks for this event 
     for(var i = 0; i < chain.length; i++){ 
      chain[i](message) 
     } 
    } 
}; 

這是綁定到我的server.php爲:

$Server->bind('message', 'wsOnMessage');  
function wsOnMessage($clientID, $message, $messageLength, $binary) 

回答

0

由您發送哪些內容取決於您。例如,你可以把它像

Server.send("USERNAME|message", text); 

然後你就可以在管道|符號分割收到一個字符串中提取服務器上的用戶名。