gpt4 book ai didi

sql - AngularJS 不会获取由 socket.io 发出的新数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:44 24 4
gpt4 key购买 nike

我有一个带有socket.io的NodeJs服务器,我的应用程序是一个聊天程序,我使用AngularJS作为客户端,我的问题是当我向数据库发送新数据时正确保存,但是当我到达客户端时数据不会自行刷新,

在我的客户端 chatController

我有这个

 socket.on(CHAT.GET_CHATS, instance.onChatsReceived);

我正在调用这个函数

从套接字服务器接收发出的对象以及所有数据

    function onChatsReceived(chatsArr) {
console.log(chatsArr);
// decode messages for history array
chatsArr.forEach(function (oneChat) {
var parsed = JSON.parse(oneChat.members);
var parsedSent = JSON.parse(oneChat.sentby);
// console.log(parsedSent)
var nick = parsedSent[0].lastseen;
// console.log(nick);
oneChat.isOnline = $scope.isOnline(parsedSent[0].lastseen);
var decoded = htmlDecode(oneChat.message);
oneChat.message = decoded;
oneChat.members = parsed;
});

$scope.messagesCounted = true;

$scope.$applyAsync(function () {
$scope.chats = chatsArr;
if ($scope.chats.length < 100 ) {
$scope.loadMoreContacts = false;
}
});

}

但是如果我不刷新浏览器,我的对象数组就不会改变

插入数据后,我的数组来 self 的套接字

(18) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]

插入数据并刷新浏览器后

(19) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]

这就像 socket.io 发出数据,但 AngularJS 不刷新它,有些人可以帮助我,提前致谢。

最佳答案

您能否提供您正在运行的 Angular 版本?

我很确定,这是因为原始框架的功能需要转换为适合您的风格(Provider、Factory 或 Service)才能进入摘要循环。

查看 Typescript 版本 (Angular2+) 的教程

https://tutorialedge.net/typescript/angular/angular-socket-io-tutorial/

或者 AngularJS (1<) 的那个:

https://code.tutsplus.com/tutorials/more-responsive-single-page-applications-with-angularjs-socketio-creating-the-library--cms-21738

关于sql - AngularJS 不会获取由 socket.io 发出的新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52671888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com