javascript - NodeJS HTTPS working only on chrome and not on other browsers -
i tried working on simple chat app using nodejs. , want work on https. provided ssl certificate , key, have code:
html
<div class="chat_box"> <div> <table id="chat_panel"></table> <input type="hidden" name="chat_time" id="chat_time" value="12:00 am" /> </div> <table> <tr> <td colspan="2">message : <textarea rows="3" name="chat_message" id="chat_message"></textarea> </td> </tr> <tr> <td> <input type="text" name="chat_name" id="chat_name" class="fullspan" /> </td> <td> <input type="button" name="send_message" id="send_message" value="send" /> </td> </tr> </table> </div> server.js
// global vars var http_port = 8080; var https_port = 8079; var host = '127.0.0.1'; // ip of host // import modules var fs = require('fs'); var http = require('http'); var https = require('https'); var express = require('express'); var request = require('request'); var socketio= require('socket.io'); // certificate var privatekey = fs.readfilesync('sslcert/server.key', 'utf8'); var certificate = fs.readfilesync('sslcert/server.crt', 'utf8'); var credentials = { key: privatekey, cert: certificate }; var app = express(); var httpserver = http.createserver(app); var httpsserver = https.createserver(credentials, app); var io = socketio.listen(httpsserver); // receive/request io.sockets.on('connection', function(client) { console.log("new connection detected."); client.on('message', function(data) { console.log('recieved:'+data); var sender = data.name; var value = data.chat; var time = data.time; var dom = '<tr><td class="sender">' + sender + '</td><td class="message">' + value + '</td><td class="sender">' + time + '</td></tr>'; // process recieved data io.sockets.emit('message', dom); }); }); // activate server httpserver.listen(http_port, host); httpsserver.listen(https_port, host); // success message console.log('connection established on '+http_port+'/'+https_port+' : '+host+'. press ctrl + c disconnect.'); main.js
var http_port = 8080; var https_port = 8079; var host = '127.0.0.1'; var socket = io.connect(host+':'+https_port); $('#send_message').bind('click', function(e) { e.preventdefault(); chat(); }); function chat() { var data = { name: $('#chat_name').val(), chat: $('#chat_message').val(), time: $('#chat_time').val() }; socket.emit('message', data); } socket.on('message', function(data) { $('#chat_panel').append(data); }); i have no problem in google chrome while using https, when tried use other browsers, not working.

and tried switch on http , works on browsers. code problem or need valid/real ssl certificate since using free/test copy of xampp.
Comments
Post a Comment