Re-add stream end log for WebSocket (#3397)
This commit is contained in:
		@@ -315,12 +315,14 @@ const startWorker = (workerId) => {
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  // Setup stream end for WebSockets
 | 
			
		||||
  const streamWsEnd = ws => (id, listener) => {
 | 
			
		||||
  const streamWsEnd = (req, ws) => (id, listener) => {
 | 
			
		||||
    ws.on('close', () => {
 | 
			
		||||
      log.verbose(req.requestId, `Ending stream for ${req.accountId}`);
 | 
			
		||||
      unsubscribe(id, listener);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    ws.on('error', e => {
 | 
			
		||||
      log.verbose(req.requestId, `Ending stream for ${req.accountId}`);
 | 
			
		||||
      unsubscribe(id, listener);
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
@@ -370,19 +372,19 @@ const startWorker = (workerId) => {
 | 
			
		||||
 | 
			
		||||
      switch(location.query.stream) {
 | 
			
		||||
      case 'user':
 | 
			
		||||
        streamFrom(`timeline:${req.accountId}`, req, streamToWs(req, ws), streamWsEnd(ws));
 | 
			
		||||
        streamFrom(`timeline:${req.accountId}`, req, streamToWs(req, ws), streamWsEnd(req, ws));
 | 
			
		||||
        break;
 | 
			
		||||
      case 'public':
 | 
			
		||||
        streamFrom('timeline:public', req, streamToWs(req, ws), streamWsEnd(ws), true);
 | 
			
		||||
        streamFrom('timeline:public', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
 | 
			
		||||
        break;
 | 
			
		||||
      case 'public:local':
 | 
			
		||||
        streamFrom('timeline:public:local', req, streamToWs(req, ws), streamWsEnd(ws), true);
 | 
			
		||||
        streamFrom('timeline:public:local', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
 | 
			
		||||
        break;
 | 
			
		||||
      case 'hashtag':
 | 
			
		||||
        streamFrom(`timeline:hashtag:${location.query.tag}`, req, streamToWs(req, ws), streamWsEnd(ws), true);
 | 
			
		||||
        streamFrom(`timeline:hashtag:${location.query.tag}`, req, streamToWs(req, ws), streamWsEnd(req, ws), true);
 | 
			
		||||
        break;
 | 
			
		||||
      case 'hashtag:local':
 | 
			
		||||
        streamFrom(`timeline:hashtag:${location.query.tag}:local`, req, streamToWs(req, ws), streamWsEnd(ws), true);
 | 
			
		||||
        streamFrom(`timeline:hashtag:${location.query.tag}:local`, req, streamToWs(req, ws), streamWsEnd(req, ws), true);
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        ws.close();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user