在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);
然后你就可以在管道|
符号分割收到一个字符串中提取服务器上的用户名。