Javascript 使用Sails.js进行个性化聊天
在sails.js或教程中是否有一种方法可以帮助我使用sockets(比如pubnub)构建点对点聊天 我正在尝试使用sails.js实现个性化聊天功能 这意味着我的应用程序中有多个用户,一个用户可以与另一个用户聊天。因此,如果用户A在用户B聊天框中发送消息,则B(仅)接收消息,反之亦然 我已经看过了,它的文档给出了使用模型的示例。所以我猜这不是一对一的聊天,而是用户列表和用户配置文件更改之类的东西 所以我知道我需要使用本机socket.io代码。我需要的是,客户机可以为特定的通道打开一个套接字,然后每当用户a输入到用户B时,该消息就会存储在db中,并写入套接字中。我不知道如何在Sails中获得此功能 我可以在MessagesController的索引事件中编写代码。因此,我需要根据用户A和用户B的详细信息计算通道名称,并将其写入该通道的套接字中。但我不知道如何将它写入特定通道的套接字。我希望我清楚我想要什么。我发现这段代码就是一个例子:Javascript 使用Sails.js进行个性化聊天,javascript,jquery,sockets,socket.io,sails.js,Javascript,Jquery,Sockets,Socket.io,Sails.js,在sails.js或教程中是否有一种方法可以帮助我使用sockets(比如pubnub)构建点对点聊天 我正在尝试使用sails.js实现个性化聊天功能 这意味着我的应用程序中有多个用户,一个用户可以与另一个用户聊天。因此,如果用户A在用户B聊天框中发送消息,则B(仅)接收消息,反之亦然 我已经看过了,它的文档给出了使用模型的示例。所以我猜这不是一对一的聊天,而是用户列表和用户配置文件更改之类的东西 所以我知道我需要使用本机socket.io代码。我需要的是,客户机可以为特定的通道打开一个套接字
//Code For Server
var io = require("socket.io");
io.sockets.on("connection", function (sock) {
sock.emit("welcomeMessage", { hello: "world" });
}
io.listen(80);
//Code For Client
var sock = io.connect('http://localhost');
sock.on('welcomeMessage', function (json) {
//Handle Event Received
});
但它并没有告诉我,我如何从我想要的任何控制器写入通道“welcomeMessage”的特定套接字。类似于PubNub所支持的()。您完全可以使用基于模型的pubsub方法在Sails中进行点对点和群聊。在sailsv0.10(
npm安装)中更容易实现sails@beta
),上有一个完整的示例。Sails v0.10的文件如下所示
使用v0.10的诀窍是结合使用和事件,以便只有用户自己订阅自己的消息
上下文,但他们订阅与他们在聊天室中的每个人的更新
上下文。这样一来,他们只会收到自己的直接信息,但他们会听到朋友的更新信息(如姓名和状态更改)
要向控制器中的用户
实例发送直接消息,请执行以下操作:
User.message(userInstance, msgData);
订阅该实例的消息
上下文的任何套接字客户端都将收到一个用户
事件,其中包含以下数据对象:
{
id: [the user ID],
verb: "messaged",
data: [the data in msgData]
}
如果您愿意,您还可以使用诸如
join
、leave
、broadcast
和emit
等功能来创建一个更为特别的聊天服务器,但使用Sails方式可以让您充分利用框架的强大功能 您完全可以使用基于模型的pubsub方法在Sails中进行点对点和群聊。在sailsv0.10(npm安装)中更容易实现sails@beta
),上有一个完整的示例。Sails v0.10的文件如下所示
使用v0.10的诀窍是结合使用和事件,以便只有用户自己订阅自己的消息
上下文,但他们订阅与他们在聊天室中的每个人的更新
上下文。这样一来,他们只会收到自己的直接信息,但他们会听到朋友的更新信息(如姓名和状态更改)
要向控制器中的用户
实例发送直接消息,请执行以下操作:
User.message(userInstance, msgData);
订阅该实例的消息
上下文的任何套接字客户端都将收到一个用户
事件,其中包含以下数据对象:
{
id: [the user ID],
verb: "messaged",
data: [the data in msgData]
}
如果您愿意,您还可以使用诸如
join
、leave
、broadcast
和emit
等功能来创建一个更为特别的聊天服务器,但使用Sails方式可以让您充分利用框架的强大功能 您好,在生产应用程序中使用beta版是明智的吗?以及beta版何时正式发布?您好,在生产应用程序中使用beta版是明智的吗?以及beta版何时正式发布?我发现了以下方法,但看起来不太干净,另外,它完全基于socket.ioi发现了以下方法,但它看起来不太干净,也完全基于socket.io