Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Sails.js进行个性化聊天_Javascript_Jquery_Sockets_Socket.io_Sails.js - Fatal编程技术网

Javascript 使用Sails.js进行个性化聊天

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代码。我需要的是,客户机可以为特定的通道打开一个套接字

在sails.js或教程中是否有一种方法可以帮助我使用sockets(比如pubnub)构建点对点聊天

我正在尝试使用sails.js实现个性化聊天功能 这意味着我的应用程序中有多个用户,一个用户可以与另一个用户聊天。因此,如果用户A在用户B聊天框中发送消息,则B(仅)接收消息,反之亦然

我已经看过了,它的文档给出了使用模型的示例。所以我猜这不是一对一的聊天,而是用户列表和用户配置文件更改之类的东西

所以我知道我需要使用本机socket.io代码。我需要的是,客户机可以为特定的通道打开一个套接字,然后每当用户a输入到用户B时,该消息就会存储在db中,并写入套接字中。我不知道如何在Sails中获得此功能

我可以在MessagesController的索引事件中编写代码。因此,我需要根据用户A和用户B的详细信息计算通道名称,并将其写入该通道的套接字中。但我不知道如何将它写入特定通道的套接字。我希望我清楚我想要什么。我发现这段代码就是一个例子:

//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