cocotte-mixin-ws
webscoketのミドルウェアをkoaで使えるようにする
Last updated 4 years ago by yukik .
MIT · Repository · Bugs · Original npm · Tarball
$ cnpm install cocotte-mixin-ws 
SYNC missed versions from official npm registry.

cocotte-mixin-ws

koaフレームワークにメソッドをミックスインし、webscoketのミドルウェアを追加出来るようにします

ミドルウェアのthisはsocketとparamを参照するオブジェクトです

はじめに

$ npm install koa

koaはnode v0.11.9以上で--harmonyフラグを追加して実行してください

node --harmony app.js

通常は下記のように作成アプリケーションをするところを

var koa = require('koa');
var app = koa();

次のように作成してください

var koa = require('koa');
var mixin = require('cocotte-mixin-ws');
var app = mixin(koa)();

記述例

全体:


var koa = require('koa');
var mixin = require('cocotte-mixin-ws');
var app = mixin(koa)();

// HTTPミドルウェアの追加
app.use(function*(next){
	yield next;
});

// HTTPリクエストの監視開始
var server = app.listen();

// websocketのミドルウェアの追加
app.ws('message', function*(next){
	yield next;
});

// websocketリクエストの監視開始
app.wsListen(server);

ミドルウェアのthisは3つのプロパティを持ちます。

socketは接続を開始した際に作成されるソケットオブジェクトです

valuesは接続している間に保持される変数です。

すべてのイベントで共通して使用されることに注意してください

paramはイベントの発生先から引き渡される変数です。

paramは発生するたびに再作成されます

ws(connectionイベント):

connectionイベントはイベント引数が存在しません

app.ws('connection', function*(next) {
	// ソケット
	var socket = this.socket;
	// ソケット変数
	var values = this.values;
	yield next;
});

ws(その他のイベント)

その他のイベントは、イベント変数を受け取ることができます

ただし複数の値を受け取るには、JSON形式で一つの変数にする必要があります

app.ws('message', function*(next) {
	// ソケット
	var socket = this.socket;
	// ソケット変数
	var values = this.values;
	// イベント引数
	var message = this.param;

	values.x = (values.x || 0) + 1;

	yield next;
});
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (4)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |