2017-02-03 5 views
1

Ich benutze Node.js und ich versuche, PubNub integriert zu bekommen, um meinen Chatroom zum Laufen zu bringen. Ich habe zahlreiche Tutorials verfolgt und sie scheinen PubNub von ihrer Client-Seite ausführen zu lassen. Um jedoch die Sicherheit meines Publish-Keys und Subscribe-Keys zu gewährleisten, möchte ich PubNub von meiner Server-Seite (Nodejs) ausführen lassen. Das Problem tritt jedoch genau dann auf, wenn ich genau das versuche. Hier ist mein Server:TypeError: PUBNUB.init ist keine Funktion

var express = require('express'); 
var path = require('path'); 
var bodyParser = require('body-parser'); 
var request = require('request'); 
var pubnub = require('pubnub'); 

    pubnub = pubnub.init({ 
    subscribe_key: 'sub-c-demo', 
    publish_key: 'pub-c-demo', 
    ssl: true 
}); 
//Defining routes 
var routes = require('./routes/index'); 

//Init express 
var app = express(); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended:false})); 

//View Engine 
app.set('view engine', 'ejs'); 

//Set Static Folder 
app.use(express.static(path.join(__dirname, 'public'))); 

//Get route 
app.use('/', routes); 



//Set Port 
app.set('port', (process.env.PORT || 3000)); 

app.listen(app.get('port'), function(){ 
    console.log('3000 is the magic port!!'); 
}); 

Warum erhalte ich eine TypeError: pubnub.init is not a function wenn ich versuche, pubnub zu initialisieren?

$ node server 
/Users/macbookpro/Desktop/project007/server.js:8 
var pubnub = pubnub.init({ 
        ^

TypeError: pubnub.init is not a function 
    at Object.<anonymous> (/Users/macbookpro/Desktop/project007/server.js:8:21) 
    at Module._compile (module.js:573:32) 
    at Object.Module._extensions..js (module.js:582:10) 
    at Module.load (module.js:490:32) 
    at tryModuleLoad (module.js:449:12) 
    at Function.Module._load (module.js:441:3) 
    at Module.runMain (module.js:607:10) 
    at run (bootstrap_node.js:382:7) 
    at startup (bootstrap_node.js:137:9) 
    at bootstrap_node.js:497:3 

Ich folgte, was schien, alle notwendigen Schritte zu sein:

npm i pubnub --save

var pubnub = require('pubnub');

https://cdn.pubnub.com/sdk/javascript/pubnub.4.4.2.min.js (inklusive der neuesten sdk in meinem Kopf)

Aber es scheint um irgendwo ein Fehler zu sein, der dazu geführt hat, dass ich mich über den Fehler sowie ein paar andere Dinge.

1). Ich habe die Dinge aus allen drei zusammengefügt, aber welche dieser Tutorials sollte ich wirklich folgen?

https://vimeo.com/35557579

https://www.pubnub.com/docs/nodejs/pubnub-javascript-sdk-v4

https://www.pubnub.com/docs/javascript/pubnub-javascript-sdk-v4

2). Muss mein publish-key und subscribe-key gesichert werden oder kann ich einfach PubNub von meinem Client aus ausführen, wie in den meisten Tutorials gezeigt?

3). Vergessen Sie die Server-Seite und Client, sollte ich PubNub als Javascript-Datei ausführen und das Skript verknüpfen? <script src="js/pubnubchatroom.js"></script>

Ich bin neu in diesem Zeug und ich versuche nur, meinen Kopf um alles zu wickeln. Danke im Voraus!

+0

v4 sdk hat neue init. – PubNub

Antwort

0

PubNub V4 SDK NodeJS neue Init

Es gibt eine neue Art und Weise Ihren PubNub SDK zu initialisieren. Siehe das folgende Beispiel. v4 SDKs sind nicht Drop-In-kompatibel. Sie können v4 und v3 SDKs zwischen Umgebungen erfolgreich mischen.

const PubNub = require('pubnub'); 
const pubnub = new PubNub({ 
    publishKey : 'demo', 
    subscribeKey : 'demo' 
}) 
  1. Folgen https://www.pubnub.com/docs/nodejs/pubnub-javascript-sdk-v4
  2. pub/Unterschlüssel ausgesetzt werden kann. setzen Sie niemals Ihren geheimen Schlüssel frei.
  3. PubNub ist kompatibel mit jeder Strategie in dieser Hinsicht.