我正在使用Node.js,express.js和Sequelize开发日历应用程序。
应用程序很简单,您可以在日历中创建任务,但也可以将某些任务分配给系统的其他用户
我需要使用socket.io创建一个通知系统,但我没有使用websockets的经验。我最大的疑问是我如何才能让我的服务器向用户发送分配任务的通知?
我的端口配置位于名为bin / www的文件夹中,我的快速路由在名为server.js的文件中有所不同
任何想法?
答案 0 :(得分:3)
我想向您介绍准备使用后端系统,使您能够轻松构建具有很酷功能的现代Web应用程序:
有了这个,您可以专注于您的主要应用程序开发。
您可以查看Kuzzle,这是我正在开展的一个项目:
首先,启动服务: http://docs.kuzzle.io/guide/getting-started/#running-kuzzle-automagically
然后在您的日历应用程序中,您可以使用javascript sdk
此时您可以创建一个文档:
const
Kuzzle = require('kuzzle-sdk'),
kuzzle = new Kuzzle('http://localhost:7512');
const filter = {
equals: {
user: 'username'
}
}
// Subscribe every changes in calendar collection containing a field `user` equals to `username`
kuzzle
.collection('calendar', 'myproject')
.subscribe(filter, function(error, result) {
// triggered each time a document is updated/created !
// Here you can display a message in your application for instance
console.log('message received from kuzzle:', result)
})
// Each time you have to create a new task in your calendar, you can create a document that represent your task and persist it with kuzzle
const task = {
date: '2017-07-19T16:07:21.520Z',
title: 'my new task',
user: 'username'
}
// Creating a document from another app will notify all subscribers
kuzzle
.collection('calendar', 'myproject')
.createDocument(task)
我认为这可以帮助你:)
文档通过socket.io或本机websockets提供时可用
不要犹豫提问;)
答案 1 :(得分:1)
据我所知,您需要将socket.io实例传递给其他文件,对吗?
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
您只需将其附加到bin / www文件中的服务器
即可DidUpdateLocations
或者我还想做什么,就是为express
添加socket.io中间件var sio = require('socket.io');
var io = sio();
app.io = io;
因此,您可以在某些路由器文件中访问它
var io = app.io
io.attach(server);