10-02-2019 05:47
10-02-2019 05:47
I want to use messaging API (wensocket API)
So I made wss server and client in my linux server.
But it didn't work
when I use ws protocol, The server works well.
But when I use wss protocol, The server doesn't work.
I don't know what this problem is.
Under is my code.
const express = require('express')
const ws = require('./ws')
const fs = require('fs')
const https =require('https');
const http = require('http');
const app = express()
const options = {
key: fs.readFileSync( __dirname + '/key.pem', 'utf8'),
cert: fs.readFileSync( __dirname + '/server.crt', 'utf8')
};
app.get('/', function (req, res) {
res.sendFile(__dirname + '/jh.html');
})
var server = https.createServer(options,app);
server.listen(5000, function ()
{
console.log('Example app listening on port 5000!')
})
http.createServer(app).listen(8089,function()
{
console.log('Example app listening on port 8089!')
})
<!DOCTYPE html>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script language="javascript" type="text/javascript">
var wsUri = "wss://Using IP:Port";
var output;
function init()
{
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket()
{
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
}
function onOpen(evt)
{
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt)
{
writeToScreen("DISCONNECTED");
}
function onMessage(evt)
{
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
websocket.close();
}
function onError(evt)
{
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend(message)
{
writeToScreen("SENT: " + message);
websocket.send(message);
}
function writeToScreen(message)
{
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
window.addEventListener("load", init, false);
</script>
<h2>WebSocket Test</h2>
<div id="output"></div>
const wss = new WebSocketServer({port:8080})
//const wss = new WebSocketServer({port:443})
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message)
})
setInterval(
() => ws.send(`${new Date()}`),
5000
)
})
error code is under
please give me answer.
when I use websocket echo server , it works.
10-05-2019 00:54
10-05-2019 00:54
Generally this has nothing to do with the Fitbit API, and since the screenshot with error is illegible, I can only suggest to:
- use a Node WebSocket lib (like https://github.com/websockets/ws) Example: https://github.com/websockets/ws#external-https-server
- check that your SSL certificates are correct
- provide a better quality error screenshot