Я использовал один-один чат, используя PUSHER (чат реального времени). Теперь я хочу реализовать функцию группового чата (от многих до многих). я видел некоторые из методов, каккак реализовать функцию группового чата с помощью толкателя
channel.bind('pusher:member_added', function(member) {
// for example:
add_member(member.id, member.info);
});
channel.bind('pusher:member_removed', function(member) {
// for example:
remove_member(member.id, member.info);
});
Но не получают, как создать группу с именем. а затем добавить участников в контакты.
Обновленный вопрос ---------------------- У меня такие же html-файлы, как указано ниже client1.html, client2.html, client3.html и связанные с тем же каналом «присутствие-пользователь», и теперь я могу видеть онлайн-членов внутри «члена» textarea, используя функцию members.each ({}).
<html>
<head>
<title>Pusher Test</title>
<script src="//js.pusher.com/2.2/pusher.min.js" type="text/javascript"/>
<script src="http://code.jquery.com/jquery-2.1.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var chatdata;
var myuserId;
console.log("ready!");
$('#reset').click(function(event) {
event.preventDefault();
$('#loggs').val("");
});
$('#btnSendMessage').click(function(event) {
event.preventDefault();
chatdata = myuserId+": "+$("#textchat").val();
console.log("in btn chatdata ==" + chatdata);
if(chatdata==undefined){
chatdata ="";
}
var triggered = channel.trigger('client-messagereceive', {
data : chatdata
});
console.log("pusher:subscription_succeeded==>" + triggered);
console.log("in btn chatdata ==" + chatdata);
alert(count);
});
var msgLoggs;
console.log("chatdata ==" + chatdata);
var socketId;
Pusher.log = function(message) {
if (window.console && window.console.log) {
msgLoggs += message + "\n";
$("#loggs").val(msgLoggs);
window.console.log(message);
}
};
var options = {
authEndpoint : "api/chat.json?x-api-key=06870559427d46de8789c39d50097301"
}
var pusher = new Pusher('c7afb8c403e31a7088e1', options);
pusher.connect();
pusher.connection.bind('connected', function(data) {
socketId = pusher.connection.socket_id;
});
var channel = pusher.subscribe('presence-user');
channel.bind('pusher:subscription_succeeded', function(members) {
var membersOl;
channel.members.each(function(member) {
var userId = member.id;
var userInfo = member.info;
membersOl+=userId+" ";
});
var count = channel.members.count;
var me = channel.members.me;
var userId = me.id;
myuserId=userId;
var userInfo = me.info;
var count = channel.members.count;
$("#member").val(membersOl)
console.log("count-->"+count);
var user = channel.members.get(userId);
console.log("user--->"+user.info);
console.log("pusher:subscription_succeeded====userid" + userId+" userinfo "+userInfo.data);
});
channel.bind('pusher:subscription_error', function(status) {
if (status == 408 || status == 503) {
}
});
var datafromClient2;
channel.bind('client-messagereceive', function(data) {
datafromClient2+=data.data+"\n";
$("#textchat").val(datafromClient2);
});
});
</script>
</head>
<body>
we are heree .....
<form action="" method="post">
<table>
<tr>
<td>Enter your text</td>
</tr>
<tr>
<td><textarea name="textchat" id="textchat" rows="10" cols="80"></textarea></td>
<td><textarea name="member" id="member" rows="10" cols="80"></textarea></td>
</tr>
<tr>
<td colspan="2"><button name="btnSendMessage" id="btnSendMessage"
value="Send Message">Send to Message</button></td>
</tr>
<tr><td>Logger</td><td> <button id="reset">Reset </button></td></tr>
<tr>
<td colspan="2"><textarea name="loggs" id="loggs" rows="40" cols="150"></textarea></td>
</tr>
</table>
</form>
</body>
</html>
Теперь вопрос, когда я создаю новую группу позволяет сказать, что имя, как «Друзья», и для этого мне нужно будет подписаться на канал позволяет сказать, что «присутствие-друзей», и теперь я хочу, чтобы добавить пользователей к этой группе из моих контактов, поэтому в этом случае, какие методы мне нужно будет использовать для добавления моих контактов в группу? Пожалуйста, помогите!
Pusher не обеспечивает механизм управления группами. Вам необходимо самостоятельно создать эту функциональность, а затем контролировать доступ к каналам присутствия. Затем вы можете использовать функциональность 'members', чтобы получить список пользователей, которые находятся в сети, и получать информацию о том, что пользователи подключены к сети и переходят в автономный режим. – leggetter
@leggetter ok спасибо. – Kamini