PHP Classes

File: web/js/client/controller/controller.js

Recommend this page to a friend!
  Classes of Felix Ivan Romero Rodríguez   PHP Web Socket Chat   web/js/client/controller/controller.js   Download  
File: web/js/client/controller/controller.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: PHP Web Socket Chat
Chat system using Websockets or AJAX requests
Author: By
Last change:
Date: 7 years ago
Size: 2,906 bytes
 

Contents

Class file image Download
/** * Created by firomero on 10/02/2016. */ 'use strict'; /* DEFINITIONS */ chatClient.controller('chatController',chatController); /* IMPLEMENTATIONS */ function chatController($scope,chatConfig,chatMessage,chatEvents,eventDispatcher,Normalizer){ $scope.chatConfig = chatConfig; $scope.chatMessage = chatMessage; $scope.users = []; $scope.currentUser = undefined; $scope.single = ''; $scope.welcome = ''; $scope.soporte='ws'; var connection = new WebSocket('ws://localhost:1919'); connection.onopen = function(e) { console.info('connected'); } ; connection.onmessage = function(e) { var event = JSON.parse(e.data); updateEvent(event); console.log(e.data); }; //Sender Functions $scope.Connect=function(){ $scope.chatConfig.connected = true; var event = chatEvents.onCreate({ username:$scope.chatConfig.username, email:$scope.chatConfig.email, from:$scope.chatConfig.email, connection:$scope.chatConfig.resource, id:$scope.chatConfig.id }); doAction(event,eventDispatcher,connection); }; $scope.Send = function(){ var event = chatEvents.onMessage({ username:$scope.chatConfig.username, email:$scope.chatConfig.email, from:$scope.chatConfig.email, id:$scope.chatConfig.id, to:'all', toConnection:-1, message:$scope.single }); if ($scope.currentUser!=undefined) { event.to = $scope.currentUser.email; event.toConnection = $scope.currentUser.connection; } $scope.chatMessage.content.push($scope.single); $scope.single = ''; doAction(event,eventDispatcher,connection); }; $scope.Cancel = function(){ var event = chatEvents.onClose({ username:$scope.chatConfig.username, email:$scope.chatConfig.email, from:$scope.chatConfig.email, id:$scope.chatConfig.id }); doAction(event,eventDispatcher,connection); connection.close(); $scope.chatConfig.connected = false; }; /** * Executes the action planned * @param event * @param eventDispatcher * * @param connection */ function doAction(event,eventDispatcher,connection) { event.config.connection = connection; var chatStoreHandler = chatStore(eventDispatcher); chatStoreHandler.dispatch(event) } /** * Do a properly actions for incoming data * @param event */ function updateEvent(event){ if (event.event=='onCreate') { $scope.chatConfig.id=event.id; $scope.chatConfig.resource=event.connection; } if (event.event=='onRetrieve') { $scope.$apply($scope.users = event.options.users); $scope.chatConfig.email = event.email; } if (event.event=='onMessage') { $scope.chatMessage.content.push(event.message); } } }