在Websocket中添加自定义数据

在Websocket中添加自定义数据

问题描述:

我想将登录的客户端用户名与客户端输入的消息一起发送到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) 

由您发送哪些内容取决于您。例如,你可以把它像

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

然后你就可以在管道|符号分割收到一个字符串中提取服务器上的用户名。