c# - Sending messages from UWP to socket.io -


i have simple node socket.io server , c# uwp app. want send simple messages app server, seems message not in right format/protocol/something. tried formatting correct, don't know how it.

app.js

io.on('connection', function(socket){   console.log('client connected')    socket.on('message', function (msg) {     console.log('socket msg')     console.log(msg) } 

when fire message socket.io tester, console shows

socket msg dwadwadwada 

(just should be)

debug output:

 engine:socket packet +1ms   socket.io-parser decoded 2["message","dwadwadwada"] {"type":2,"nsp":"/","data":["message","dwadwadwada"]} +0ms   socket.io:socket got packet {"type":2,"nsp":"/","data":["message","dwadwadwada"]} +0ms   socket.io:socket emitting event ["message","dwadwadwada"] +0ms   socket.io:socket dispatching event ["message","dwadwadwada"] +0ms 

now if send string uwp app (removed try/catches , exception handling brevity)

string msg = "test"; await sendmessage(msg);  private async task sendmessage(string message) {     this.socket = new messagewebsocket();     socket.control.messagetype = socketmessagetype.utf8;     socket.messagereceived += socketmsgreceived;     await this.socket.connectasync(uri);     debug.writeline("connected " + uri);      datawriter messagewriter = new datawriter(socket.outputstream);      messagewriter.writestring(message);     await messagewriter.storeasync(); } 

, message sent (no errors) , server seems something, not recognized message.

 engine:ws received "test" +6s   engine:socket packet +1ms   engine:ws closing +1ms   socket.io:client client close reason parse error +0ms   socket.io:socket closing socket - reason parse error +1ms 

i tried formatting message {message = "test"} or 42["message","test"] no effect, though latter @ least gave me

  engine:ws received "42["message" = "test"]" +4s   engine:socket packet +0ms   socket.io-parser decoded 2["message" = "test"] {"type":4,"data":"parser error"} +0ms   socket.io:client no socket namespace undefined +1ms 

i'm pretty sure easy fix, can't find out how it.. have convert special type? jsonify somehow? don't want fancy stuff, sending

{message: "hi"} 

or maybe (after first 1 works)

{message: {text: "hi", additionalstuff: "ho"}} 

i'd appreciate :) thanks!

i found out problem...

i had build websocket string hand, (how noticed) socket.io not same websockets, wrapper.

so had build json string scratch info here.

my final string looked like

 "42[\"mess\"," +  "{\"id\": \"" + id + "\", " +  "\"name\": \"" + name + "\"}]"; 

with lot of escaped quotes... didn't understand why it's 42 instead of "4" docs message, found out that's sent, used (it works)

the above message parsed by

socket.on('mess', function(msg) {     console.log(msg)  } 

as

{id: blah, name: bleh} 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -