我的聊天应用程序遇到问题,我需要能够向特定用户发送私人消息,我可以选择该特定用户,但由于某些原因无法弄清楚如何发送私人消息。
在下面,您将找到我服务器的代码,请提供帮助:
var express = require('express');
var app = express();
var PORT = process.env.PORT || 8000;
var http = require('http').Server(app); // this is a node server that uses express as the boiler plate
var io = require('socket.io')(http); // socket! pass our server as a parameter to it
// use express static to expose a folder
app.use(express.static(__dirname + '/public'));
var users = [],
connections = [];
var onlineClients = {};
// Register events on socket connection
io.on('connection', function(socket){
connections.push(socket);
// console.log("connected socket", connections);
socket.on("disconnect", function() {
users.splice(users.indexOf(socket.username), 1);
updateUsernames();
connections.splice(connections.indexOf(socket), 1);
console.log("disconnected socket", connections.length)
});
socket.on("send message", function(data) {
// console.log(data);
io.emit("new message", {msg: data, user: socket.username});
});
socket.on("notify user", function(data) {
io.emit("notify user", {user: socket.username})
});
socket.on("new user", function(data) {
socket.username = data;
users.push(socket.username);
updateUsernames();
});
function updateUsernames() {
io.emit("get users", users);
};
socket.on("private", function(data, recipientName) {
var recipient = connections.filter(function (recipient) {
return recipient.username === recipientName;
})[0];
console.log(recipient.id);
console.log(data);
io.sockets.socket(recipient.id).emit("received private msg", data);
});
// socket.on("create room", function(room) {
// socket.join(room);
// io.sockets.in(room).emit('event', "hey wusup am in this room");
// console.log(socket);
// })
});
http.listen(PORT, function(){
console.log('Server started on port ' + PORT);
});
您用于加入私人会议室的客户端代码
<input type="text" class="form-control" id="user_email" placeholder="user_email" />
您在客户端的JavaScript代码
function a(){
io.emit('privatechatroom', {email:document.getElementById('user_email').value});
}
您的服务器端代码以在您的房间中添加用户
socket.on('privatechatroom',function(data){
socket.join(data.email);
io.emit('res',{mes:"you are added"})
});
现在您可以向最近添加到此会议室客户端的那个人发送私人消息
function b() {
io.emit('sendmail', { email: document.getElementById('sender_mail').value, message: document.getElementById('message').value });
$('#message').val('');
}
/*serverside code*/
socket.on('sendmail', function (data) {
io.sockets.in(data.email).emit('new_msg', { msg: data.message });
console.log(data.email);
});
问题内容: 我一直在寻找运气不佳的网络。我试图弄清楚如何从一个用户向另一个用户发送私人消息。有很多片段,但是我不确定客户端/服务器之间的交互。如果我有要发送到的套接字的ID,该如何将其发送到服务器,以及如何确保服务器仅将消息发送到该接收者的套接字? 有没有人知道的教程或演练? 问题答案: 无需教程。关于Socket.IO的常见问题很简单: 编辑: 人们在询问以后如何获取该对象时会链接到此问题。没有
我在诺德吉斯和 socket.io 更新鲜。我正在尝试使用节点js,socket.io 和快速框架中的角js制作一个聊天应用程序。我缺乏如何私下执行聊天的基本想法,到目前为止,我的代码在一组连接的用户中聊天。这是我的服务器代码 我的主套接字文件包含如下代码: 我是abe加载所有登录我的应用程序的用户。我想要的就是点击可用并开始私信,到现在聊天是公开的,服务器中连接的每个人都可以看到消息。我的ang
问题内容: 我如何在私人聊天中使用node.js和socket.io向共享了session_id的所有用户发送消息? 问题答案: 您必须与创建一个房间并让用户订阅该房间,以便您可以向该房间发送私人消息, 客户 服务器 以下是创建会议室,订阅会议室并将消息发送到会议室的文档和示例: Socket.io房间
问题内容: 我现在有这段代码设置了缺口和余地: 我想知道我如何才能有多少人连接到特定的聊天室…例如Room.length 客户端 : 我发现了这一点,但给出了未定义的内容: 问题答案: 对于socket.io版本> = 1.0: 请注意,房间成为具有.length1.4属性的实际类型,因此1.4.x方法从现在开始应该是稳定的。当然,禁止对该类型的API进行重大更改。 计算所有连接到的客户端’my_
问题内容: 我现在有这段代码设置了缺口和余地: 我想知道我如何才能有多少人连接到特定的聊天室…例如Room.length 客户端 : 我发现了这一点,但给出了未定义的内容: 问题答案: 如果您使用的版本<1,
本文向大家介绍基于Nodejs利用socket.io实现多人聊天室,包括了基于Nodejs利用socket.io实现多人聊天室的使用技巧和注意事项,需要的朋友参考一下 socket.io简介 在Html5中存在着这样的一个新特性,引入了websocket,关于websocket的内部实现原理可以看这篇文章,这篇文章讲述了websocket无到有,根据协议,分析数据帧的头,进行构建websocket