Skip to content

Commit e7c0e25

Browse files
author
topshadow
committed
socketio 本地聊天室 ing
1 parent c4c9f0c commit e7c0e25

File tree

7 files changed

+31
-77
lines changed

7 files changed

+31
-77
lines changed

.bowerrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"directory": "www/lib/"
3+
}

app/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ process.env.NODE_ENV = process.env.NODE_ENV || 'developement';
99
var app = express();
1010
var server = require('http').Server(app);
1111
//socket.io
12-
// require('../config/socket-io')(server);
12+
require('../config/socket-io')(server);
1313

1414
var port = 3000;
1515
server.listen(process.env.PORT || port, function (err) {

config/express.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ module.exports = function() {
1414

1515
//跨域问题
1616
app.all('*', function(req, res, next) {
17-
res.header("Access-Control-Allow-Origin", "*");
17+
res.header("Access-Control-Allow-Origin", "http://localhost:3000");
1818
res.header("Access-Control-Allow-Headers", "X-Requested-With");
1919
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
20+
res.header("Access-Control-Allow-Credentials",true);
2021
res.header("X-Powered-By",' 3.2.1');
21-
res.header("Content-Type", "application/json;charset=utf-8");
22+
// res.header("Content-Type", "application/json;charset=utf-8");
2223
next();
2324
});
2425

config/socket-io.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,15 @@
22

33
module.exports=async function (server){
44
var io = require('socket.io')(server);
5-
var connect =async function(server) {
6-
return new Promise(function(resolve,reject){
7-
io.on('connection', function (socket) {
8-
9-
socket.emit('login', '登陆成功');
10-
resolve(socket);
11-
});
5+
io.on('connection', function (socket){
6+
console.log('一位用户已经登录');
7+
socket.emit('new connect', '新的用户已经登录');
8+
socket.on('send message',function(msg){
9+
socket.broadcast.emit('receive message',msg);
1210
});
13-
};
14-
//聊天应用程序逻辑
15-
var socket = await connect(server);
16-
socket.emit('login','登录成功');
17-
18-
return socket;
11+
socket.on('login',function(msg){
12+
console.log(msg);
13+
});
14+
//聊天应用程序逻辑
15+
});
1916
};

www/js/app/controller.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
2+
var socket;
13
angular.module('app.controller',[])
24
.controller('SignInCtrl', function($http,$scope, $state,$ionicPopup,$timeout,popup,$ionicNavBarDelegate,userService) {
35
$scope.user = {};
@@ -38,9 +40,12 @@ angular.module('app.controller',[])
3840
};
3941
})
4042

41-
.controller('menuCtrl',function($scope,camera,$ionicActionSheet,$ionicSlideBoxDelegate,userService){
42-
var socket = io(config.serverUrl);
43-
43+
.controller('menuCtrl',function($scope,camera,$ionicActionSheet,config,$ionicSlideBoxDelegate,userService){
44+
socket = io('http://localhost:3000');
45+
socket.on('connect', function (data) {
46+
console.log(data);
47+
socket.emit('login', '一个用户已经登录');
48+
});
4449

4550
$scope.changeHeader = function(){
4651

@@ -55,7 +60,7 @@ angular.module('app.controller',[])
5560
// Called each time the slide changes
5661
$scope.slideChanged = function(index) {
5762
$scope.slideIndex = index;
58-
}
63+
};
5964
// .controller('tabMessageCtrl', function($scope, $stateParams, Chats) {
6065
// $scope.chat = Chats.get($stateParams.chatId);
6166
// })

www/js/app/tool.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ factory('config',function(){
2727
alert(err);
2828
});
2929
}
30-
31-
3230
}).factory('popup',function($ionicPopup,$timeout){
3331
return{
3432
show:function(title,subTitle){

www/js/chat/controllers.js

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -10,62 +10,19 @@ angular.module('chat.controllers', [])
1010
})
1111

1212
.controller('messageCtrl', function($scope, $state, $ionicPopup, localStorageService, messageService) {
13-
14-
// $scope.messages = messageService.getAllMessages();
15-
// console.log($scope.messages);
13+
socket = io.connect('http://localhost:3000');
14+
socket.emit('send message','杨杰');
1615
$scope.onSwipeLeft = function() {
1716
$state.go("tab.friends");
1817
};
19-
$scope.popupMessageOpthins = function(message) {
20-
$scope.popup.index = $scope.messages.indexOf(message);
21-
$scope.popup.optionsPopup = $ionicPopup.show({
22-
templateUrl: "templates/popup.html",
23-
scope: $scope,
24-
});
25-
$scope.popup.isPopup = true;
26-
};
27-
$scope.markMessage = function() {
28-
var index = $scope.popup.index;
29-
var message = $scope.messages[index];
30-
if (message.showHints) {
31-
message.showHints = false;
32-
message.noReadMessages = 0;
33-
} else {
34-
message.showHints = true;
35-
message.noReadMessages = 1;
36-
}
37-
$scope.popup.optionsPopup.close();
38-
$scope.popup.isPopup = false;
39-
messageService.updateMessage(message);
40-
};
41-
$scope.deleteMessage = function() {
42-
var index = $scope.popup.index;
43-
var message = $scope.messages[index];
44-
$scope.messages.splice(index, 1);
45-
$scope.popup.optionsPopup.close();
46-
$scope.popup.isPopup = false;
47-
messageService.deleteMessageId(message.id);
48-
messageService.clearMessage(message);
49-
};
50-
$scope.topMessage = function() {
51-
var index = $scope.popup.index;
52-
var message = $scope.messages[index];
53-
if (message.isTop) {
54-
message.isTop = 0;
55-
} else {
56-
message.isTop = new Date().getTime();
57-
}
58-
$scope.popup.optionsPopup.close();
59-
$scope.popup.isPopup = false;
60-
messageService.updateMessage(message);
61-
};
6218
$scope.messageDetils = function(message) {
6319
$state.go("messageDetail", {
6420
"messageId": message.id
6521
});
6622
};
23+
6724
$scope.$on("$ionicView.beforeEnter", function(){
68-
// console.log($scope.messages);
25+
console.log($scope.messages);
6926
$scope.messages = messageService.getAllMessages();
7027
$scope.popup = {
7128
isPopup: false,
@@ -99,7 +56,6 @@ angular.module('chat.controllers', [])
9956
var viewScroll = $ionicScrollDelegate.$getByHandle('messageDetailsScroll');
10057
// console.log("enter");
10158
$scope.doRefresh = function() {
102-
// console.log("ok");
10359
$scope.messageNum += 5;
10460
$timeout(function() {
10561
$scope.messageDetils = messageService.getAmountMessageById($scope.messageNum,
@@ -109,13 +65,7 @@ angular.module('chat.controllers', [])
10965
};
11066
var id=31;
11167
$scope.sendMessage = function(){
112-
id++;
113-
$scope.messageDetils.push({
114-
$$hashKey: "object:"+id,
115-
content: $scope.send_content,
116-
isFromeMe: false,
117-
time: "2015-11-27 06:34:55"
118-
});
68+
socket.emit('send message',$scope.send_content);
11969
viewScroll.scrollBottom();
12070
};
12171

0 commit comments

Comments
 (0)