Closed
Description
You want to:
- report a bug
- request a feature
Current behaviour
var socket = io({ transports: ['polling'], forceBase64: true });
socket.emit('chat message', 'π');
Counts the π as 2 bytes, but it's actually 4
which results in it sending 23:42["chat message","...."]
over the wire
It should be sending25:42["chat message","...."]
over the wire
Conversely when I send back 25:42["chat message","...."]
the client disconnects
Steps to reproduce (if the current behaviour is a bug)
var socket = io({ transports: ['polling'], forceBase64: true });
socket.emit('chat message', 'π');
socket.on('chat message', function (msg) {
console.log(msg);
});
Expected behaviour
send and receive π over a polling connection
Setup
- OS: osx
- browser: chrome Version 66.0.3359.181 (Official Build) (64-bit)
- engine.io version: https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.dev.js
Other information (e.g. stacktraces, related issues, suggestions how to fix)
I'm using the googollee go-socket.io library in linux. You can put together an exact sample of what I have with (Assuming you have go installed)
go get github.com/googollee/go-socket.io
cd $GOPATH/src/github.com/googollee/go-socket.io/example
sed -i bak \
-e 's/= io()/= io({ transports: ['polling'], forceBase64: true })/' \
-e 's,/socket.io-1.3.7.js,//cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.dev.js,' assets/index.html
go run main.go
A chat will be started on localhost:5000 you can try sending unicode characters