我是Node.js的新手,我的网站是用angular + node
编写的我找到了一个用angular,NodeJS和socket.io编写的聊天室代码,我想将它添加到我的网站但是我遇到了麻烦。
我试图将这些功能放在GulpFile.js中但是没有用:
io.on("connection", function(socket) {..
socket.on("disconnect"...
1)放置它们的地方在哪里? 我拥有与服务器和客户端结合的所有功能。我只是不知道将功能放在服务器端的哪个位置
答案 0 :(得分:1)
好的,我认为你需要首先了解服务器和前端之间的区别。所以你的服务器在NodeJS上运行,你的前端在Angular上运行。 Gulpjs与这两者无关。要了解gulp究竟做了什么,watch this。现在你要做的是使用Socket io构建一个聊天系统。你得到了代码,但现在你很困惑把它放在哪里。因此,如果我是正确的,您希望拥有一个功能,例如人们使用不同的电子邮件ID在您的网站上登录,并且他们希望彼此聊天。你如何建立这种功能。如果这确实是你的问题。请在下面评论。如果没有,请更新您的问题,以便更清楚您想要实现的目标,以便我们为您提供指导。
没有sara你没有把你的socket io代码放在gulpfile中。您必须以角度创建控制器。它需要链接到服务器。因此建立管道。 Angular ---------------节点 您需要首先建立该链接。你会怎么做? 在index.html中
然后在你的nodeJS app.js中 请执行npm install socket express --save
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(filterCellId) as! FilterCell
cell.slider.addTarget(self, action: #selector(FilterCell.sliderChanged(_:)), forControlEvents: .ValueChanged)
return cell
}
完成后。 在相同的app.js中输入
var express = require('express');
var app = express();
var server = require('http').Server(app); //you don't need to require a model for this. This functionality is already built in NodeJS
var io = require('socket.io')(server);
现在在你的角度应用程序中。让事情变得简单。在你的app.js中,你给你的路线和东西。请给这家工厂。
io.emit("this_should_be_same", {
data: {
lat: data.lat,
lng: data.lng
}
});
现在你可以将它注入任何控制器,如
var ypurApp = angular.module('myApp',[]);
yourApp.factory('socket', function($rootScope) {
var socket = io.connect('localhost:5040');
return {
on: function(eventName, callback) {
socket.on(eventName, function() {
var args = arguments;
//console.log(args);
$rootScope.$apply(function() {
callback.apply(socket, args);
});
});
},
emit: function(eventName, data, callback) {
socket.emit(eventName, data, function() {
var args = arguments;
$rootScope.$apply(function() {
if (callback) {
callback.apply(socket, args);
}
});
});
}
};
});
这应该这样做。我知道你会怀疑地随便问我。
答案 1 :(得分:0)
从后端集成......
module.exports = (function(app){
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.on('connection', function(socket){
socket.on('chat', function (data) {
socket.broadcast.emit('newMessage', data );
socket.broadcast.emit('onlineUser',connectedPeople);
})
})
server.listen(3000, function () {
console.log('connection created on port no : '+3000);
})})
//用于前端侧集成使用服务
angular.module('myApp').factory('Socket',function (socketFactory) {
return socketFactory({
ioSocket: io.connect('http://localhost:3000')
});});