mzmttks's blog for my memorandum の略で mzrandum. Topics are: python, book review, and my hobbies.
2012年9月9日日曜日
websocket-server で Chrome からアクセス出来ない問題の解決策
Sec-WebSocket-Accept が無いために Chrome だとエラーがおこる。
(npm -i websocket-server したパス)/nodejs/node_modules/websocket-server/connection.js を編集
console.log(connection);
var key = require('crypto')
.createHash('sha1')
.update(connection._req.headers['sec-websocket-key']
+ '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')
.digest('base64');
res += '\r\nSec-WebSocket-Accept: ' + key;
377行目の直前に書く。
377 connection._socket.write(res + '\r\n\r\n', 'ascii');
2012年9月4日火曜日
python で関数に大量の引数をまとめて与える。
たとえば、 struct.pack で 200個の長さのlist をバイナリにしたいとする。
でも、 struct.pack は
struct.pack(format, p1, p2, ...)
なので、単純には p1, ..., p200 の引数を書かないといけない。つまり
values = range(100)
packed = struct.pack("<" + "L" * 100, values[0], values[1], ..., values[199])
でもこれはあまりにしんどい。そんなときは, * を使えば展開可能
packed = struct.pack("<" + "L" * 100, *(values))
でも、 struct.pack は
struct.pack(format, p1, p2, ...)
なので、単純には p1, ..., p200 の引数を書かないといけない。つまり
values = range(100)
packed = struct.pack("<" + "L" * 100, values[0], values[1], ..., values[199])
でもこれはあまりにしんどい。そんなときは, * を使えば展開可能
packed = struct.pack("<" + "L" * 100, *(values))
ラベル:
python
登録:
投稿 (Atom)