Add example demonstrating a basic WebSocket protocol with message types
kabaluyot opened this issue · comments
In HTML5 websockt or socket.io, you can consume messages just with the following lines of code:
var io = require('socket.io-client');
var socket = io('http://localhost:6001');
socket.on('connect', function () {
console.log('connected');
});
socket.on('StockTicker', function (data) {
console.log(data);
});
socket.on('StockBidAsk', function (data) {
console.log(data);
});
socket.on('Stock', function (data) {
console.log(data);
});
How to achieve the example above in this library?
This library provides no way to route messages, you'd have to do that yourself. You could via a map, a switch statement etc.
See the examples for how to read and write messages.
the chat example sir? If you may sir, can you provide a basic example for websocket client with "StockTicker" and "Stock" as channels (rooms). The examples are quite confusing esp to beginners and coming from different language like me :)
I understand, let's add a simple example showing how to route different messages.
Thank you sir. Maybe you can send just a guide or sample here and I will make a PR
Hey @kabaluyot
We had the same problem, so we ended up with writing simple socket.io alternative isp-etp-go on top of nhooyr/websocket, maybe you'd be interested.
Thank you @pymq, will definitely check it out. For the moment, I was forced to do the client implementation using Typescript :/
So I created this fork with the chat example upgraded for specific chat rooms.
In total, it has 4 endpoints
/subscribe - Subscribe to all messages sent to the websocket server
/subscribe/ - Subscribe to all messages from a specific room (i.e. /subscribe/cool)
/publish - Publish to every single listener regardless of whether they are in a room or not
/publish/ - Publish to your room and any global subscribers (i.e publish/cool)
https://github.com/dafinley/websocket/tree/master/examples/chat
There's an ios and android app setup to work with it:
https://github.com/dafinley/twilio-video-app-android
https://github.com/dafinley/twilio-video-app-ios
Well appreciated @dafinley . Thank you
With inspiration from @dafinley I think the best move here is to extend the chat example to add structure like timestamps to each message and add two more message types to indicate when a client connects/leaves.
@nhooyr smooth websocket lib man. This was my intro into go
. If anybody lands here I did a walkthru video on using this chat example https://www.youtube.com/watch?v=Jhnv5tA6Waw