What is socket.io-client?
The socket.io-client npm package is a client-side library that enables real-time, bidirectional and event-based communication between web clients and servers. It works on every platform, browser or device, focusing equally on reliability and speed.
What are socket.io-client's main functionalities?
Connecting to a server
This code sample demonstrates how to connect to a Socket.IO server running on localhost at port 3000.
const io = require('socket.io-client');
const socket = io('http://localhost:3000');
Emitting events
This code sample shows how to emit an event to the server with an event name and associated data.
socket.emit('event_name', { some: 'data' });
Listening for events
This code sample illustrates how to listen for events emitted by the server and handle them with a callback function.
socket.on('event_name', function(data) {
console.log(data);
});
Disconnecting from the server
This code sample shows how to handle a disconnection event when the client gets disconnected from the server.
socket.on('disconnect', function() {
console.log('Disconnected from server');
});
Other packages similar to socket.io-client
ws
The 'ws' package is a simple to use, blazing fast, and thoroughly tested WebSocket client and server implementation. Unlike socket.io-client, which provides an abstraction over WebSocket with additional features like auto-reconnection, 'ws' is a bare WebSocket implementation.
faye-websocket
Faye is a set of tools for simple publish-subscribe messaging between web clients. It's similar to socket.io-client in that it provides an abstraction over WebSocket for real-time communication, but it has a different API and feature set.
sockjs-client
SockJS-client is a browser JavaScript library that provides a WebSocket-like object. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server, with WebSockets or without. It is similar to socket.io-client but focuses more on providing fallback options for environments where WebSocket is not available.
socket.io-client
How to use
A standalone build of socket.io-client
is exposed automatically by the
socket.io server as /socket.io/socket.io.js
. Alternatively you can
serve the file socket.io.js
found in the dist
folder or include it via CDN.
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('connect', function(){});
socket.on('event', function(data){});
socket.on('disconnect', function(){});
</script>
import io from 'socket.io-client';
const socket = io();
A slim build (without JSON3
, a JSON polyfill for IE6/IE7, and debug
) is also available: socket.io.slim.js
.
Socket.IO is compatible with browserify and webpack (see example there).
Node.JS (server-side usage)
Add socket.io-client
to your package.json
and then:
var socket = require('socket.io-client')('http://localhost:3000');
socket.on('connect', function(){});
socket.on('event', function(data){});
socket.on('disconnect', function(){});
Debug / logging
In order to see all the client debug output, run the following command on the browser console – including the desired scope – and reload your app page:
localStorage.debug = '*';
And then, filter by the scopes you're interested in. See also: https://socket.io/docs/logging-and-debugging/
API
See API
License
MIT