OpenTok で node.js サーバーを使用しています。2 人のユーザー間でプライベート チャットを作成しており、1 つのセッションと 2 つのトークンを作成したいと考えています。問題は、generate_token 関数がトークンを 1 つだけ作成し、それを両方のユーザーに送信していることです。このコードでは、個々のトークンを各ユーザーに送信します。
私のコードは以下の通りです:
var sessionId;
var sourceUser=data.from;
var targetUser=data.to;
if(data.messageType=='accepted'){
var location = '127.0.0.1'; // use an IP or 'localhost'
ot.create_session(location, function(result){
sessionId = result;
});
console.log('chat has been accepted by ' + data.from + '. I can start the OpenTok session now with ' +data.to + '.');
var data= {'to':sourceUser, 'message':{'token': ot.generate_token({session_id:sessionId, 'connection_data': Math.floor(Math.random()*999999),
'role': "publisher"}), 'sessionID': sessionId, 'apikey':key}, 'from': targetUser, 'messageType':'tokenInfo'}
connectedUsersObject[sourceUser].emit('private message', tstamp(), socket.nickname, data);
console.log(sourceUser + '\'s token is: ' + data.message.token + '. The sessionID is: ' + data.message.sessionID + '. The API key is: ' + data.message.apikey);
console.log('connection data is: ' + data.message.connection_data);
var data= {'to':targetUser, 'message':{'token': ot.generate_token({session_id:sessionId, 'connection_data': Math.floor(Math.random()*999999),
'role': "publisher"}), 'sessionID': sessionId, 'apikey':key}, 'from': sourceUser, 'messageType':'tokenInfo'}
connectedUsersObject[targetUser].emit('private message', tstamp(), socket.nickname, data);
console.log(targetUser + '\'s token is: ' + data.message.token + '. The sessionID is: ' + data.message.sessionID + '. The API key is: ' + data.message.apikey);
console.log('connection data is: ' + data.message.connection_data);
サーバー コード全体はhttp://pastebin.com/uvWfKSWpにあります。