2017-02-03 4 views
1

Я использую Node.js, и я пытаюсь интегрировать PubNub, чтобы запустить мой чат. Я слежу за многочисленными учебниками, и все они, похоже, выполняют PubNub со своей стороны. Однако для обеспечения безопасности моего ключа публикации и подписки я хочу, чтобы PubNub выполнялся с моей серверной стороны (Nodejs). Однако проблема возникает именно тогда, когда я пытаюсь это сделать. Вот мой сервер:TypeError: PUBNUB.init не является функцией

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!!'); 
}); 

Почему я получаю TypeError: pubnub.init is not a function когда я пытаюсь инициализировать pubnub?

$ 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 

Я последовал за то, что, казалось, все необходимые шаги:

npm i pubnub --save

var pubnub = require('pubnub');

https://cdn.pubnub.com/sdk/javascript/pubnub.4.4.2.min.js (Включено последнюю SDK в моем заголовке)

Но, похоже, быть ошибкой где-то, что привело меня к путанице с ошибки, а также несколько других вещей.

1). Я собирал вещи из всех трех, но какие из этих учебных пособий я должен соблюдать?

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). Нужно ли защищать ключи от подписки и подписки, или я могу просто запустить PubNub со своей клиентской стороны, как показано в большинстве руководств?

3). Забудьте о стороне сервера и клиенте, должен ли я запускать PubNub как файл javascript и связывать скрипт? <script src="js/pubnubchatroom.js"></script>

Я новичок в этом, и я просто пытаюсь обернуть вокруг себя все вокруг. Заранее спасибо!

+0

v4 sdk имеет новый init. – PubNub

ответ

0

PubNub V4 SDK NodeJS новый Init

Существует новый способ инициализации PubNub SDK. См. Следующий пример. v4 SDK не совместимы. Вы можете успешно скомбинировать v4 и v3 SDK между средами.

const PubNub = require('pubnub'); 
const pubnub = new PubNub({ 
    publishKey : 'demo', 
    subscribeKey : 'demo' 
}) 
  1. Следуйте https://www.pubnub.com/docs/nodejs/pubnub-javascript-sdk-v4
  2. ключи паб/суб могут быть подвержены. никогда не раскрывайте секретный ключ.
  3. PubNub совместим с любой стратегией в этом отношении.
Смежные вопросы