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
Post a Comment