douyi9597
2013-03-12 04:44
浏览 204

在Websocket中添加自定义数据

I would like to send the logged in client side username to a websocket script along with the message the client has entered. I need support on implementing another variable- rge username, to be sent with the message. Right now I'm using:https://github.com/Flynsarmy/PHPWebSocket-Chat and the js is

Server.send( 'message', text );

with Server being the FancyWebSocket.This is sent to:

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 )
        }
    }
};

Which is binded to my server.php as:

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

图片转代码服务由CSDN问答提供 功能建议

我想将登录的客户端用户名发送到websocket脚本以及客户端输入的消息。 我需要支持实现另一个变量用户名,与消息一起发送。 现在我正在使用: https://github.com/Flynsarmy/PHPWebSocket-Chat 和 js是

  Server.send('message',text); 
   
 
 

服务器是FancyWebSocket 。这发送到:

  var FancyWebSocket = function(url)
 {
 var callbacks = {}; 
 var ws_url = url; 
 var conn;  
 
 this.bind = function(event_name,callback){
 callbacks [event_name] = callbacks [event_name] ||  []; 
回调[event_name] .push(回调); 
返回此; //可链接
}; 
 
 this.send = function(event_name,event_data){
 this.conn.send(  event_data); 
返回此; 
}; 
 
 this.connect = function(){
 if(typeof(MozWebSocket)=='function')
 this.conn = new MozWebSocket(url);  
 else 
 this.conn = new WebSocket(url); 
 
 //调度到右边的处理程序
 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;  //没有这个事件的回调
 for(var i = 0; i&lt; chain.length; i ++){
 chain [i](message)
} 
} 
}; 
   
 
 

哪个绑定到我的server.php为:

  $ Server-&gt; bind('message','wsOnMessage'  );  
 
函数wsOnMessage($ clientID,$ message,$ messageLength,$ binary)
   
 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongyuan7981 2013-03-13 10:24
    已采纳

    It is up to you which content you send. You could for example send it like

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

    Then you can extract the USERNAME on the server by splitting the received string at the pipe | symbol.

    点赞 打赏 评论

相关推荐 更多相似问题