ソケット接続が確立されると、active.ejs
(クライアント)からindex.js
(サーバー)にJSONオブジェクトを送信しようとしています。socket.ioのクライアント接続からサーバーへのJSONデータ(クエリ)の送信
しかし、サーバーに送信されたソケットオブジェクトのクエリパラメータはJSONオブジェクトではありません(空のオブジェクトです)。サーバーにソケットオブジェクトを記録しようとすると渡されました。
これはuser_info
オブジェクトが上記HTML(EJS)にcontroller.jsから渡される方法である
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Active</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="http://localhost:4000/socket.io/socket.io.js"></script>
</head>
<body>
<script>var socket = io.connect('http://localhost:4000/tune-in', {query: "<%= user_info %>"}); %></script>
<p>
Welcome,
<%= user_info.uri %>
</p>
</body>
</html>
をactive.ejs
active.ejsapp.get('/tune-in', function(req, res){
res.render('active', {user_info: user_data});
});
ファイルuser_info
オブジェクトの外観は次のとおりです。
{ country: 'US',
display_name: 'My name',
email: '[email protected]',
external_urls: { spotify: 'https://open.spotify.com/user/randomnums' },
followers: { href: null, total: 3 },
href: 'https://api.spotify.com/v1/users/randomnums',
id: 'randomstring',
images:
[ { height: null,
url: 'myimg',
width: null } ],
product: 'premium',
type: 'user',
uri: 'spotify:user:randomstring' }
index.js - 私の意図した使用法がある
query:
{ '[object Object]': 'undefined',
EIO: '3',
transport: 'polling',
t: 'LrEFaoW' } },
- 上記のJSONデータが
var io = socket(server);
io.on('connection', function(socket){
console.log('Made socket connection', socket);
});
私はソケットオブジェクトをログインすると、クエリパラメータがどのように見えるがログに記録されなければなりませんsocket.broadcast.emit('users', data);
のようなものをindex.js
に入れることができます。ここで、data
は、user_info
のフィールドのいくつかを含むJSONオブジェクトです。 )。 didn {query: "<%-JSON.stringify(user_info)%>"}
と上記の可能性の重複は私の問題を解決していない、すなわち交換{query: "<%= user_info %>"}
」:
<script>
var socket = io.connect('http://localhost:4000/tune-in', {query: "<%= user_info %>"}); %>
var active = document.getElementById('active');
socket.on('users', function(data){
active.innerHTML += "<li><em>" + data.display_name + " is connected" + "</em></li>";
});
</script>
EDIT -
そしてで
は、私のような何かをしたいのですが、 active.ejs問題を解決する。代わりに私はクライアント側でUnexpectedIdentifier
と言っているエラーを得ました。 EDIT2エラーは{query: "<%-JSON.stringify(user_info)%>"}
で、二重引用符は "<%-JSON.stringify(user_info)
"です。