Last active
June 8, 2019 00:30
-
-
Save ykyk1218/2903e1d16b8c69402a84 to your computer and use it in GitHub Desktop.
Node.jsとChrome拡張機能を使ってリアルタイムで通知を出す ref: http://qiita.com/ykyk1218/items/c8025236badb691183b6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var express = require('express'); | |
var path = require('path'); | |
var favicon = require('serve-favicon'); | |
var logger = require('morgan'); | |
var cookieParser = require('cookie-parser'); | |
var bodyParser = require('body-parser'); | |
var http = require('http'); | |
var app = express(); | |
// uncomment after placing your favicon in /public | |
//app.use(favicon(__dirname + '/public/favicon.ico')); | |
app.use(logger('dev')); | |
app.use(bodyParser.json()); | |
app.use(bodyParser.urlencoded({ extended: false })); | |
app.use(cookieParser()); | |
app.use(express.static(path.join(__dirname, 'public'))); | |
//=========================== | |
//ルーティング | |
app.post('/', function(req, res) { | |
var commits = req.param('commits'); | |
var commit_message = ""; | |
for(var i=0; i<commits.length; i++) { | |
//マージのcommitメッセージはなくす | |
if(commits[i]['message'].indexOf('Merge branch') < 0 ) { | |
console.log(commits[i]['message']); | |
commit_message += commits[i]['message']; | |
} | |
} | |
io.sockets.emit('push', {value: commit_message}); | |
res.render('index', { title: 'Express' }); | |
}); | |
//=========================== | |
// view engine setup | |
app.set('views', path.join(__dirname, 'views')); | |
app.set('view engine', 'ejs'); | |
app.set('port', process.env.PORT || 3000); | |
// error handlers | |
// development error handler | |
// will print stacktrace | |
if (app.get('env') === 'development') { | |
app.use(function(err, req, res, next) { | |
res.status(err.status || 500); | |
res.render('error', { | |
message: err.message, | |
error: err | |
}); | |
}); | |
} | |
// catch 404 and forward to error handler | |
app.use(function(req, res, next) { | |
var err = new Error('Not Found'); | |
err.status = 404; | |
next(err); | |
}); | |
// production error handler | |
// no stacktraces leaked to user | |
app.use(function(err, req, res, next) { | |
res.status(err.status || 500); | |
res.render('error', { | |
message: err.message, | |
error: {} | |
}); | |
}); | |
//Websokcet接続の部分 | |
var server = http.createServer(app); | |
server.listen(app.get('port'), function() { | |
console.log("Express server listening on port " + app.get('port')); | |
}); | |
var io = require('socket.io').listen(server); | |
io.sockets.on('connection', function(socket) { | |
console.log('connection start'); | |
}); | |
module.exports = app; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var socket = io.connect("websocketサーバーのURL"); | |
//websocketで接続した時 | |
socket.on('push', function(message) { | |
var opt = { | |
type: 'basic', | |
title: 'タイトル', | |
message: message.value, | |
iconUrl: "ポップアップで表示させるアイコン" | |
} | |
//アイコンにつけるバッチ | |
chrome.browserAction.setBadgeText({text:"1"}); | |
//ポップアップ通知 | |
chrome.notifications.create("", opt, function(id){}); | |
}); | |
//ツールバーをクリック時にバッチを消す | |
chrome.browserAction.onClicked.addListener( | |
function(tab) { | |
chrome.browserAction.setBadgeText({text:""}); | |
} | |
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var bodyParser = require('body-parser'); | |
・・・・・ | |
app.use(bodyParser.json()); | |
app.use(bodyParser.urlencoded({ extended: false })); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
app.post('/', function(req, res) { | |
var commits = req.param('commits'); | |
var commit_message = ""; | |
for(var i=0; i<commits.length; i++) { | |
//マージのcommitメッセージはなくす | |
if(commits[i]['message'].indexOf('Merge branch') < 0 ) { | |
console.log(commits[i]['message']); | |
commit_message += commits[i]['message']; | |
} | |
} | |
io.sockets.emit('push', {value: commit_message}); | |
res.render('index', { title: 'Express' }); | |
}); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
npm install socket.io |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var server = http.createServer(app); | |
server.listen(app.get('port'), function() { | |
console.log("Express server listening on port " + app.get('port')); | |
}); | |
var io = require('socket.io').listen(server); | |
io.sockets.on('connection', function(socket) { | |
console.log('connection start'); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"manifest_version": 2, | |
"name": "拡張機能の名前", | |
"version": "1.0", | |
"description": "説明文", | |
"browser_action": { | |
"name": "拡張機能の名前" | |
}, | |
"permissions": [ | |
"notifications", | |
], | |
"background": { | |
"persistent": false, | |
"scripts": ["socket.io.js", "eventpage.js"] | |
}, | |
"icons" : { | |
"16":"16x16のアイコン画像", | |
"48":"48x48のアイコン画像" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment