APIはかなり似ており、同じことをほぼ同じことができます。
サーバー側の例の代わりのために:
s.emit('message', 'message from server');
使用:
s.send('message from server',()=>{});
がするのではなく、クライアント側でそれを受信するには:
s.on('message', function (m) {
// ...
});
あなたが使用します。
s.addEventListener('message', function (m) {
// ...
});
など。この回答で
IはSocket.ioとのWebSocketの差を実証する例コード(フロントエンドとバックエンドの両方)を示した:
これは、例えばサーバのコードである:
var path = require('path');
var app = require('express')();
var ws = require('express-ws')(app);
app.get('/', (req, res) => {
console.error('express connection');
res.sendFile(path.join(__dirname, 'ws.html'));
});
app.ws('/', (s, req) => {
console.error('websocket connection');
for (var t = 0; t < 3; t++)
setTimeout(() => s.send('message from server',()=>{}), 1000*t);
});
app.listen(3001,() => console.error('listening on http://localhost:3001/'));
console.error('websocket example');
ブラウザコード例:
var l = document.getElementById('l');
var log = function (m) {
var i = document.createElement('li');
i.innerText = new Date().toISOString()+' '+m;
l.appendChild(i);
}
log('opening websocket connection');
var s = new WebSocket('ws://'+window.location.host+'/');
s.addEventListener('error', function (m) { log("error"); });
s.addEventListener('open', function (m) { log("websocket connection open"); });
s.addEventListener('message', function (m) { log(m.data); });
詳細はthisを参照してください。
出典
2017-02-22 11:51:35
rsp