有没有人知道有哪些使用CF10 Websockets实现一对一实时聊天的示例或页面?我在网上找到的所有示例都是群聊,用户订阅某个频道。我需要的是可以有多个一对一聊天实例,就像您经常在允许您与支持代理之一聊天的网站上看到的Live Help Chat一样。非常感谢您的帮助,希望有示例(CF和JS)。
有没有人知道有哪些使用CF10 Websockets实现一对一实时聊天的示例或页面?我在网上找到的所有示例都是群聊,用户订阅某个频道。我需要的是可以有多个一对一聊天实例,就像您经常在允许您与支持代理之一聊天的网站上看到的Live Help Chat一样。非常感谢您的帮助,希望有示例(CF和JS)。
Ben Nadel撰写了一篇有关使用CF10的Websockets向目标用户推送消息的精彩文章(链接)。他甚至添加了一个漂亮的演示视频。这可能是你正在寻找的,或者至少可以帮助您入门。
subscribeTo
属性,而是使用js函数订阅用户并传递一些头部值。然后可以使用这些标头作为筛选器在发布调用中使用selector
。<cfwebsocket name="ChatSocket" onOpen="openHandler" onMessage="msgHandler" onError="errHandler">
<script>
function openHandler(){
//Subscribe to the channel, pass in headers for filtering later
ChatSocket.subscribe('chatChannel',{name: '#Session.Auth.FirstName#', UserID: '#Session.Auth.UserID#', AccountID: '#Session.Auth.AccountID#' });
}
function publish(txt, userID){
var msg = {
AccountID: "#Session.Auth.AccountID#",
publisher: '#Session.Auth.UserID#',
id: userID,
message: converthtml(txt)
};
//When including headers, the "selector" is where you will filter who it goes to.
var headers = {
AccountID: "#Session.Auth.AccountID#",
publisher: '#Session.Auth.UserID#',
id: userID,
selector: "UserID eq '"+userID+"' and AccountID eq '#Session.Auth.AccountID#'"
};
ChatSocket.publish('chatChannel',msg, headers);
}
function msgHandler(message){
console.log(message);
}
function errHandler(err){
console.log(err);
}
</script>
我会在其他地方寻找任何严肃的一对一实时聊天解决方案,也许是NodeJS上的Socket.IO或Java。
WSS可能会在CF11中出现。 我不确定。