2017-04-21 1 views
1

Ich versuche faye-websocket-node ^0.11.0 als Client, sockjs-node 0.3.18 als Server verwenden möchten, finden Sie unter Client/Server-Codenode.js - Ausgabe mit Faye-WebSocket-Knoten als Client und sockjs-Knoten als Server

Ausgabe :

  • wenn Client und Server prefix matchs, wie unten Code prefix = /hello, wird Client Error during WebSocket handshake: Unexpected response code: 200

  • werfen ich trie d mit prefix = / auf dem Server, diesmal wird es keine Fehlermeldung, aber es gibt keine Verbindung offen, keine Nachricht von entweder Client oder Server on open oder on connection Code

Frage gedruckt:

Wie verwenden Sie faye-websocket-node als Client, sockjs-node als Server, und haben sie über Websock mit node.js kommunizieren?

Danke!

Client-Code:

var WebSocket = require('faye-websocket'), 
    ws  = new WebSocket.Client('ws://127.0.0.1:8888/hello'); 

ws.on('open', function(event) { 
    console.log('open'); 
    ws.send('Hello, world!'); 
}); 

ws.on('message', function(event) { 
    console.log('message', event.data); 
}); 

ws.on('close', function(event) { 
    console.log('close', event.code, event.reason); 
    ws = null; 
}); 

ws.on('error', function(event){ 
    console.log('error', event.message); 
}); 

Servercode:

var sockjs = require('sockjs'); 
var http = require('http'); 

var sockjsServer = sockjs.createServer({ 
    sockjs_url: '//d1fxtkz8shb9d2.cloudfront.net/sockjs-0.3.min.js' 
}); 

sockjsServer.on('connection', function(conn) { 
    console.log('on connection'); 
    conn.on('data', function(msg) { 
    console.log('\nRECV:'+msg); 
    }); 
}); 

var server = http.createServer(); 
sockjsServer.installHandlers(server, {prefix:'/hello'}); 
server.listen(8888, '0.0.0.0'); 

Antwort

0

Ich hob Ticket #229, Antwort von sockjs-node:

You cannot use faye-websocket directly as SockJS utilizes additional framing. You can do one of two things: 

1. Use the "raw" endpoint as documented in the README: https://github.com/sockjs/sockjs-node#connecting-to-sockjs-node-without-the-client 
2. Use sockjs-client from Node.js! Client versions >= 1.0 support usage directly from Node. 
Verwandte Themen