socket.io-client
socket.io-client提供一個可程式化的socketio client的實作方式,讓開發者可以不用透過browser也可以達到跟socketio server連線的方式。
Github repository
Installation
Sample
Client連線前,當然需要先準備Server... 下面是Express 4.x的SocketIO Server範例
/**
* Socket server
* file: web.js
*/
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(3330);
app.get('/jquery.js', function (req, res) {
res.sendfile(__dirname + '/jquery.js');
});
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
setInterval(function(){
socket.emit('news', { ts: new Date().toString() });
}, 3000);
socket.on('event', function (data) {
console.log('[%s]', socket.id, data);
});
});
Client部分連線實作如下:
var socket = require('socket.io-client')('http://localhost:3330');
socket.on('connect', function(){
console.log('[%s]on connect...', socket.id);
});
socket.on('event', function(data){
console.log('[%s]on event...', socket.id, data);
});
socket.on('news', function(data){
console.log('[%s]on news...', socket.id, data);
socket.emit('event', {
msg: 'test', ts: new Date()
});
});
socket.on('disconnect', function(){
console.log('[%s]on disconnect....', socket.id);
});
舊版SocketIO
如果是使用SocketIO 0.9.x版本,對應的Client需下載對應的Client版本,需要尋找對應的版本可以透過
$ npm show socket.io-client
來尋找更新版本的註記,然後透過下面方法下載特定版本
$ npm install [email protected]
而socket.io-client作者在github上也會相對釋出該版本的branch,讓舊版實作者可以參考這些文件... 這邊比較一下新舊版本的Client操作部分,如果是0.9.11版本的socket.io-client的話,在client connect server時候需要使用connect function,而不是預設的constructor...
var socket = require('socket.io-client').connect('http://localhost:3330');
=======