LoginSignup
46
48

More than 5 years have passed since last update.

Electron+Node.js+jQueryで最小構成チャット

Posted at

Electronが流行りらしいのでチャットでも作ろうと思ったのですが、簡単なサンプルが見つからなかったので自分で作りました。40行程度です。

こちらに一式置いてあります。
https://github.com/naga3/electron-chat

インストール

npm -g install electron-prebuilt
git clone https://github.com/naga3/electron-chat.git
cd electron-chat
npm install

実行方法

まずサーバーを開始します。

node server

次にクライアントを好きなだけ立ち上げてチャットできます。

electron .

ソースについて

基本的には
Node.js + Socket.IO + jQuery で最小構成チャットと同じです。

server.js

var io = require('socket.io').listen(3000);
io.sockets.on('connection', function(socket) {
  socket.on('msg', function(data) {
    io.sockets.emit('msg', data);
  });
});

HTTPサーバーを起動する必要がないのでスタンドアロンでsocket.ioを起動しています。

main.js

var app = require('app');
var BrowserWindow = require('browser-window');
var mainWindow;
app.on('window-all-closed', function() {
  if (process.platform != 'darwin') app.quit();
});
app.on('ready', function() {
  mainWindow = new BrowserWindow({width: 600, height: 800});
  mainWindow.loadUrl('file://' + __dirname + '/index.html');
  mainWindow.on('closed', function() {
    mainWindow = null;
  });
});

Electronのサンプルそのままです。すみません。

index.html

<!doctype html>
<meta charset="utf-8">
<title>electron chat</title>
<script>
window.$ = require("jquery");
$(function() {
  var socket = require('socket.io-client')('http://localhost:3000');
  $('form').submit(function() {
    socket.emit('msg', $('input').val());
    $('input').val('');
    return false;
  });
  socket.on('msg', function(data) {
    $('div').prepend(data + '<br>');
  });
});
</script>
<form><input></form><div></div>

requireを使わないとjQueryやsocket.ioのクライアントが読み込めないらしいです。
もっとよい書き方があるのかもしれません。

46
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
48