Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is the Socket.IO client-side .js file located?

I am trying to get socket.io (Node library) to work.

I have the server-side js working, and it is listening. The socket.io website states simply:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

This is nice, however, what JS file am I importing!?!

I went into the node_modules directory, where I installed socket.io through npm, and inside socket.io/lib/ is socket.io.js file. However, this is server-side (uses the phrase require(), which errors on the client).

I have spent an hour looking around and I can't get any client .js file to work.

What am I missing?

like image 203
dthree Avatar asked Jul 20 '13 01:07

dthree


People also ask

Is Socket.IO JavaScript library?

a Javascript client library for the browser (or a Node. js client)

What is Socket.IO JS?

Socket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the server. It consists of: a Node. js server: Source | API. a Javascript client library for the browser (which can be also run from Node.

What is Socket.IO path?

path ​ Default value: /socket.io/ It is the name of the path that is captured on the server side.

Where can I find the source code for Socket Io client?

Here's the source code where the socket.io server loads the socket.io.js file source code from the socket.io-client npm module, which it will then send to the browser when the URL /socket.io/socket.io.js is requested. If you want to just grab the file and stick it in your PHP server, it lives here on the official socket.io-client github repo

What is socket Socket Io?

Socket.IO relies on Engine.IO, which is the implementation of the transport-based cross-browser/cross-device bi-directional communication layer. It brings in the following features to Socket.IO;

How to provide socketcontext to entire app in Java?

We will use useContext hook to provide SocketContext to entire app. 2. Use socket context and provide a value Add SocketContext provider at the root of your project or at the largest scope where socket is used:

How to implement a basic upvote button in socket Io?

This example is about implementing a basic Upvote button in Socket.IO. It will show real-time server and client communication. To start, go to the required project directory and initialize it either with npm init command or manually create a package.json file.


4 Answers

I managed to eventually answer this for myself.

The socket.io getting started page isn't clear on this, but I found that the server side of socket.io automatically hosts the .js file on starting node, in the directory specified in the documentation:

"/socket.io/socket.io.js"

So you literally just point to this url regardless of your web app structure, and it works.

like image 58
dthree Avatar answered Oct 17 '22 21:10

dthree


I would suggest checking if your node_modules directory is at the top level of your app directory. Also, I do believe you need to specify a port number; you should write something like var socket = io.connect('http://localhost:1337');, where the port number is 1337.

like image 32
Shrey Gupta Avatar answered Oct 17 '22 21:10

Shrey Gupta


If you did npm install then the client socket.io file is located at node_modules/socket.io-client/dist/socket.io.js

Source: Socket get-started page

like image 3
Anshul Bisht Avatar answered Oct 17 '22 22:10

Anshul Bisht


The client is available in a few ways:

  • supplied by the socket.io server at /socket.io/socket.io.js
  • included via webpack as the module socket.io-client
  • via the official CDN https://cdnjs.cloudflare.com/ajax/libs/socket.io/<version>/socket.io.js

For the first one, the server can be configured in a couple of ways:

// standalone
var io = require('socket.io')(port);

// with existing server from e.g. http.createServer or app.listen
var io = require('socket.io')(server);
like image 2
OrangeDog Avatar answered Oct 17 '22 20:10

OrangeDog